2015-04-30 3 views
1

По какой-то причине эта команда хорошо с моей локальной машине работает:Maven компиляции «Не удается найти символ»

mvn clean install -DskipTests=true -Psdk 

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

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

В ПОМ хранилище есть это:

<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 
+1

Нам нужно увидеть полное сообщение об ошибке. – JonK

+1

Вам не хватает зависимости, или ваш код является проблемой! – khmarbaise

+0

Я думаю, что это довольно ясно: класс 'MyEntity' не включен в путь класса компиляции. – m0skit0

ответ

1

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

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

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

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

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

из pom.xml

2

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

src/main/java/ 

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

src/test/java 
+0

Итак, что вы сделали? Помогите, если вы сможете дать то, что вы сделали, чтобы решить проблему. –

+0

Я изменил ссылку. Эта ошибка может возникнуть из-за множества причин. Мой был этим. Какой у вас вопрос? – user4906240

+0

Аналогичный. У меня был класс в src/main/java, который использовал ссылку класса, который был в src/test/java. Поэтому, когда цель компиляции по умолчанию была выполнена, он не смог найти тестовый класс в src/main/java. –

1

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

+0

Кстати, эта проблема может возникнуть по нескольким причинам. Во-первых, проблема зависимости. Во-вторых, справочная проблема. и т. Д. Если все проблемы были устранены, и вы все равно получите ошибку, вы можете попробовать вышеуказанный процесс. – Pritom

Смежные вопросы