我们项目中有很多模块,我们希望为其中一些模块启用测试jar创建。我尝试将maven jar插件添加到父pom的pluginmanagement
<plugins>
<pluginManagement>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
但是,现在它正在为所有模块创建测试jar。
根据文档:插件管理以大致相同的方式包含插件元素,除了不是为此特定项目构建配置插件信息,它旨在配置从此继承的项目构建。但是,这仅配置在子节点的plugins元素中实际引用的插件。孩子们有权覆盖插件管理定义。
它不应该为我们没有包含的模块创建测试jar,但它确实如此。我的模块都没有在其构建模块中添加maven-jar-plugin。
要停止为所有人创建test-jar,我只能在我感兴趣的模块中添加它。
还有其他更好的解决方案吗?
答案 0 :(得分:1)
通常情况下,您的描述不应该是可能的。如果我不得不猜测,我会说,因为你的包装类型是jar
maven-jar-plugin的配置被插入到你的有效pom中。然后,由于配置存在,它还使用插件管理部分的配置。运行mvn help:effective-pom
可能会提供一些有关这是否属实的见解。
我还要确保您的层次结构中没有父级包含将由子级继承的maven-jar-pom的任何具体配置。如果孩子继承了一个具体的部分,我认为这也会触发它包含插件管理配置。