Странное поведение Maven с разными путями каталогов проекта - PullRequest
1 голос
/ 29 декабря 2010

У меня есть новый git-клон моего Java-проекта, расположенный по адресу C: \ dev \ 1234567890 (пока не беспокойтесь об имени), и команда mvn clean compile заканчивается на BUILD SUCCESS .Как бы то ни было, Maven не компилирует все классы в моем проекте, а командир снова mvn compile (без очистки) компилирует остальные классы.Это означает, что mvn clean test завершится неудачей из-за отсутствия скомпилированных классов.

C:\dev\1234567890> mvn clean compile
...
[INFO] Compiling 708 source files to C:\dev\1234567890\target\classes
...
[INFO] ----------------------------------------------------------
[INFO] BUILD SUCCESS  
[INFO] ----------------------------------------------------------

C:\dev\1234567890>mvn compile
...
[INFO] Compiling 690 source files to C:\dev\1234567890\target\classes
...
[INFO] ----------------------------------------------------------
[INFO] BUILD SUCCESS  
[INFO] ----------------------------------------------------------

Третий запуск покажет мне, что все классы обновлены.

Куда все странно.Следующие операции завершатся успешной сборкой (с mvn clean test ).

C:\dev\1234567890>cd ..
C:\dev>mv 1234567890 12345678901
C:\dev>cd 12345678901
C:\dev\12345678901>mvn clean test
...
[INFO] --------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] --------------------------------------------------------
[INFO] Total time: 19.955s
[INFO] Finished at: Wed Dec 29 11:57:52 EET 2010
[INFO] Final Memory: 4M/58M
[INFO] --------------------------------------------------------

И снова, если я изменю имя каталога на оригинальное (или до того, что когда-либо 10 символов) Я в конечном итоге с BUILD FAILURE.Кажется, что только длина имени каталога имеет значение (все, что <11 приведет к ошибке сборки).Я что-то пропустил?Есть идеи?Я из них. </p>

mvn -version
Apache Maven 3.0.1 (r1038046; 2010-11-23 12:58:32+0200)
Java version: 1.5.0_22
Java home: C:\Program Files (x86)\Java\jdk1.5.0_22\jre
Default locale: fi_FI, platform encoding: Cp1252
OS name: "windows 7" version: "6.1" arch: "x86" Family: "windows"

Ответы [ 2 ]

0 голосов
/ 04 января 2011

Мне удалось решить свои проблемы при переходе с JDK 1.5 на 1.6.Но я до сих пор не понимаю, почему он не работал должным образом с JDK 1.5.

0 голосов
/ 29 декабря 2010
C:\dev\1234567890> mvn clean compile
[INFO] Compiling 708 source files to C:\dev\1234567890\target\classes

C:\dev\1234567890>mvn compile
[INFO] Compiling 690 source files to C:\dev\1234567890\target\classes

Одним из возможных объяснений может быть то, что у вас есть некоторый плагин maven, который генерирует исходный код Java, присоединенный к фазе компиляции.В первом вызове он выполняется после компилятора и генерирует источники, во втором вызове источники уже будут присутствовать, поэтому компилятор также будет их использовать.

Если у вас есть плагин, который генерируетJava-источник, всегда сопоставляйте его с фазами generate-sources и generate-test-sources.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...