“隐式”插件 - 为什么Maven构建通过surefire运行测试,即使POM中没有提到它?

时间:2012-02-20 13:54:59

标签: unit-testing maven

通常,要在构建期间使用Maven插件,需要通过将其放入POM的<build>部分来显式激活它。

但是,如果您创建一个最小的POM(“build”部分中没有插件)并运行Maven构建,Maven将默认运行一些插件,例如通过surefire编译和运行测试。

这是如何工作的?是否有一些“默认”插件的内部列表?或者这是在“超级POM”中定义的?我尝试查找超级POM,但给出的示例(在“Maven:The Complete Reference”中)没有列出surefire插件。

1 个答案:

答案 0 :(得分:2)

在构建期间将激活的插件列表(如果没有其他显式声明)取决于项目打包。例如,对于jarwar项目,默认生命周期包含test阶段,默认情况下绑定到surefire:test。有关详细信息,请参阅here