1

我的 Java 项目有一个新的 git 克隆,位于 C:\dev\1234567890 (不用担心名称),命令mvn clean compileBUILD 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"
4

2 回答 2

0

我设法解决了从 JDK 1.5 切换到 1.6 的问题。但我仍然不知道为什么它不能与 JDK 1.5 一起正常工作。

于 2011-01-04T08:33:04.763 回答
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-sourcesgenerate-test-sources.

于 2010-12-29T14:31:05.310 回答