在构建时忽略测试的生命周期点是什么?

时间:2016-02-06 12:31:55

标签: maven

我正在尝试了解maven构建生命周期与测试有关: 假设我有一个项目在src / main文件夹中有一个类,另一个在src / test中。当我运行mvn install时,它会被编译,然后进行测试,然后打包并安装。

到目前为止,我认为maven不会将测试打包在快照中,因为这不是“生产”代码。这是真的? 在这种情况下, maven何时忽略测试文件?

1 个答案:

答案 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目标打包在另一个附加工件中。