Компиляция Maven Не удается найти символ

По какой-то причине эта команда отлично работает с моей локальной машиной:

mvn clean install -DskipTests=true -Psdk

Однако для Codeship теперь это работает и выдает ошибку «Не удается найти символ». В Codeship полная команда:

jdk_switcher use oraclejdk8
echo $JAVA_HOME
mvn clean install -DskipTests=true -Psdk

В POM в репозитории есть это:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>

Ошибка:

[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ client-app ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 65 source files to /home/rof/src/bitbucket.org/company/client-app/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /home/rof/src/bitbucket.org/company/client-app/src/main/java/com/client/rest/resources/MyResource.java:[3,61] cannot find symbol
symbol:   class MyEntity

person quarks    schedule 30.04.2015    source источник
comment
Нам нужно увидеть полное сообщение об ошибке.   -  person JonK    schedule 30.04.2015
comment
Вам не хватает зависимости или проблема в вашем коде!   -  person khmarbaise    schedule 30.04.2015
comment
Я думаю, это довольно ясно: класс MyEntity не включен в путь к классам компиляции.   -  person m0skit0    schedule 30.04.2015
comment
Возможны две вещи: у вас нет импорта для класса MyEntity в файле MyResource или у вас нет класса MyEntity в пути к классам.   -  person Dawid Pura    schedule 30.04.2015
comment
Помимо ответов, предоставленных Dawid и m0skit0, вы можете попробовать скомпилировать тот же JDK в вашей локальной системе. Я понимаю, что в вашем POM конкретно указано 1.7, но стоит попытаться хотя бы исключить это. Я знаю, что видел подобные проблемы в прошлом.   -  person Jose Martinez    schedule 30.04.2015
comment
Вполне вероятно, что у вас есть зависимость для MyEntity.class от вашего пути к классу на вашем локальном компьютере, но не на вашем удаленном сервере сборки (Codeship), который отсутствует. Можете ли вы опубликовать свой $PATH как для codeship, так и для локальной машины сборки?   -  person Andrew McKee    schedule 02.05.2015
comment
У меня очень похожая проблема, вы нашли решение?   -  person coding_idiot    schedule 04.01.2016
comment
@coding_idiot еще нет   -  person quarks    schedule 04.01.2016


Ответы (4)


Ваш Maven читает версию Java как 1.8, тогда как в pom.xml указано, что версия 1.7.

Попробуйте установить нужную версию.

Если он уже установлен, проверьте переменную среды $JAVA_HOME, она должна содержать путь к Java JDK 8. Если вы не найдете его, исправьте переменную среды.

также удалить строки

 <fork>true</fork>
     <executable>${JAVA_1_8_HOME}/bin/javac</executable>

из пом.xml

person Shubham Jain    schedule 29.07.2015

Я была такая же проблема. причина была в том, что один из классов использовался в

src/main/java/

Где, как на самом деле, он присутствовал в

src/test/java
person user4906240    schedule 26.07.2017
comment
Итак, что вы сделали по этому поводу? Поможет, если вы можете дать то, что вы сделали, чтобы решить проблему. - person Abhijeet Vaikar; 23.08.2017
comment
Я изменил ссылку. эта ошибка может возникать по нескольким причинам. Мой был этот. Какая у вас проблема? - person user4906240; 23.08.2017
comment
Похожий. У меня был класс в src/main/java, который использовал ссылку на класс, который был в src/test/java. Поэтому, когда цель компиляции по умолчанию была выполнена, она не смогла найти тестовый класс в src/main/java. - person Abhijeet Vaikar; 23.08.2017
comment
Затем просто создайте этот класс в пакете Java вместо теста - person user4906240; 23.08.2017

Если вы правильно импортировали зависимость, вы можете попробовать следующий процесс.
Сначала попробуйте-
mvn clean
если он работает успешно, попробуйте-
mvn install
Если это работает нормально, вы можете попробовать-
mvn compile
Мне этот процесс помог.

person Pritom    schedule 30.08.2017
comment
Кстати, эта проблема может возникнуть по нескольким причинам. Во-первых, проблема зависимости. Во-вторых, справочная проблема. и т. д. Если все проблемы были решены, но вы все еще получаете сообщение об ошибке, вы можете попробовать описанный выше процесс. - person Pritom; 01.09.2017

У меня была похожая проблема, но когда я изменил версию Testng в POM, проблема решилась.

<artifactId>testng</artifactId>
<version>6.9.8</version>       // Changed the version to 6.9.8
<scope>test</scope>

person Pranay Prusti    schedule 10.05.2019