Пропустить по значению для малых типов.
Пропустить ссылки const для больших типов (определение большого может варьироваться между машинами). НО, в C ++ 11, переходите по значению, если вы собираетесь потребляйте данные, так как вы можете использовать семантику перемещения. Например:
class Person {
public:
Person(std::string name) : name_(std::move(name)) {}
private:
std::string name_;
};
Теперь вызывающий код будет делать:
Person p(std::string("Albert"));
И только один объект будет создан и перемещен непосредственно в член name_
в классе Person
, Если вы перейдете по ссылке const, необходимо будет скопировать его в name_
.
У меня была та же проблема, и вот как я предлагаю вам ее исправить:
Выполните:
mvn dependency:list
и внимательно прочитайте, если есть какие-либо предупреждающие сообщения, указывающие на наличие некоторых зависимостей не будет доступных транзитивных зависимостей.
Если да, перезапустите его с флагом -X:
mvn dependency:list -X
, чтобы увидеть подробную информацию о том, на что жалуется maven (может быть много выходных данных для флага -X)
В моем случае была проблема в зависимом модуле maven pom.xml - с управляемой зависимостью. Хотя была версия для управляемой зависимости, определенной в родительском pom, Maven не смог ее разрешить и жаловался на отсутствующую версию в зависимом pom.xml
, поэтому я просто настроил отсутствующую версию, и проблема исчезла.
Если с вашими зависимостями все в порядке (проверьте с помощью mvn dependency: list), как у меня, то это сбой maven, если вы используете Eclipse, сделайте:
Вы должны быть хорошими.
Я не знаю эквивалентных команд mvn, если кто-то может их опубликовать, они могут быть полезны.
Внутри ваших классов, от которых жалуется maven, есть некоторая зависимость, которая принадлежит некоторой попытке jar. Эти jar пересобираются с помощью команды maven, я использую эту команду mvn clean install -DskipTests=true
должна работать в этом случае, когда некоторые символы из классов отсутствует
У меня была такая же проблема ...
Как исправить - добавьте следующие свойства в pom.xml
<properties>
<!-- compiler settings -->
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
</properties>
Попробуйте использовать:
mvn clean package install
Эта команда должна установить ваши артефакты в вашем локальном репозитории Maven.
PS: я вижу, что это старый вопрос, но он может быть полезен для кого-то в будущем.
Ошибка довольно ясна: «не могу найти символ». Некоторые зависимости не могут быть разрешены (у вас даже есть строка и столбец в трассировке ссылки, которые не могут быть разрешены):
V:/dhs_tss_build_view/dhs_tssproject/tss/tsscommon-server/src/main/java/us/mn/state/dhs/tss/common/oblix/da/wsdl/OblixLoginAc
cess.java:[51,60] cannot find symbol
symbol : class BusinessException
location: class us.mn.state.dhs.tss.common.oblix.da.wsdl.OblixLoginAccess
V:/dhs_tss_build_view/dhs_tssproject/tss/tsscommon-server/src/main/java/us/mn/state/dhs/tss/common/app/da/ldap/BaseLdapImpl.j
ava:[187,14] cannot find symbol
symbol : class Phone
location: class us.mn.state.dhs.tss.common.app.da.ldap.BaseLdapImpl
V:/dhs_tss_build_view/dhs_tssproject/tss/tsscommon-server/src/main/java/us/mn/state/dhs/tss/common/app/da/ldap/BaseLdapImpl.j
ava:[204,14] cannot find symbol
symbol : class Phone
location: class us.mn.state.dhs.tss.common.app.da.ldap.BaseLdapImpl
Ниже приведено несколько вещей для проверки:
Maven работает нормально, у вас где-то ошибка.
Сейчас я также встретился, проблема
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project entry-api: Compilation failure: Compilation failure:
package com.foo.entry.common.domain does not exist
package com.foo.entry.common.model does not exist
package com.foo.entry.common.service does not exist
package com.foo.entry.common.util does not exist
Заняла долгое время, получил причину, которая является одной из банки зависимости, пружинная начальная загрузка fat jar
, таким образом, решением является перемещение ниже кода в его pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Я предполагаю, что это неправильная версия проекта A jar в вашем локальном репозитории maven. Кажется, что зависимость разрешена, иначе я думаю, что maven не начинает компиляцию, но обычно эти ошибки компиляции означают, что у вас есть смешанная версия. попробуйте выполнить maven clean install
вашего проекта A и посмотрите, не изменится ли что-то для проекта B ...
Также может быть полезно немного больше информации о ваших настройках:
Вы можете попробовать запустить команду "mvn site" и посмотреть, какие транзитивные зависимости у вас есть, а затем разрешить потенциальные конфликты (пропустив где-то неявную зависимость). Просто предположение (немного сложно понять, в чем может быть проблема, не просматривая информацию о помпе) ...