我有一个新的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都会导致构建失败)。我错过了什么吗?有任何想法吗?我不在他们身边。
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"
答案 0 :(得分:0)
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
。
答案 1 :(得分:0)
我设法解决了从JDK 1.5切换到1.6的问题。但我仍然不知道为什么它与JDK 1.5无法正常工作。