我正在尝试了解maven构建生命周期与测试有关: 假设我有一个项目在src / main文件夹中有一个类,另一个在src / test中。当我运行mvn install时,它会被编译,然后进行测试,然后打包并安装。
到目前为止,我认为maven不会将测试打包在快照中,因为这不是“生产”代码。这是真的? 在这种情况下, maven何时忽略测试文件?
答案 0 :(得分:2)
你对Maven lifecycle所说的是真的。 “主要”阶段包括:
compile
:在此阶段,运行maven-compiler-plugin:compile
目标,编译项目的主要代码。test-compile
:在此阶段,运行maven-compiler-plugin:testCompile
目标,编译项目的测试代码。test
:在此阶段,运行maven-surefire-plugin:test
目标并执行所有单元测试。package
:在此阶段,运行maven-jar-plugin:jar
目标并创建当前项目的JAR。默认情况下,此JAR将包含target/classes
下的所有类,其中包含所有主类,但不包括位于target/test-classes
内的测试类。你可以说Maite在这一步忽略了测试类。install
:在此阶段,maven-install-plugin:install
会将主工件和每个附加工件安装到本地存储库中。为了更准确地回答,并不是Maven忽略了测试类,默认情况下,打包过程只考虑主类。但您可以将其配置为将测试类与maven-jar-plugin:test-jar
目标打包在另一个附加工件中。