Maven儿童测试罐

Maven儿童测试罐,maven,maven-plugin,Maven,Maven Plugin,我们的项目中有许多模块,我们希望为其中一些模块启用测试jar创建。我尝试将maven jar插件添加到父pom的插件管理中 <plugins> <pluginManagement> <plugin> <artifactId>maven-jar-plugin</artifactId> <executions> <execution> <g

我们的项目中有许多模块,我们希望为其中一些模块启用测试jar创建。我尝试将maven jar插件添加到父pom的插件管理中

<plugins>
  <pluginManagement>
    <plugin>
      <artifactId>maven-jar-plugin</artifactId>
      <executions>
        <execution>
          <goals>
            <goal>test-jar</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</pluginManagement>

maven jar插件
试验罐
但是,现在它正在为所有模块创建测试jar

根据documenation:pluginmanagement包含插件元素的方式大致相同,不同的是它不是为这个特定的项目构建配置插件信息,而是配置从这个项目构建继承的项目构建。但是,这仅配置在子元素的plugins元素中实际引用的插件。孩子们完全有权推翻插件管理的定义

它不应该为我们没有包含在其中的模块创建测试jar,但它确实是这样做的。我的所有模块都没有在其构建模块中添加maven jar插件

为了阻止它为所有人创建测试jar,我只能将它添加到我感兴趣的模块中


有没有其他更好的解决方案来实现这一点?

通常情况下,您所描述的是不可能的。如果让我猜的话,我会说,因为您的打包类型是
jar
配置,所以maven-jar插件会被插入到有效的pom中。然后,由于配置在那里,它还使用插件管理部分的配置。运行
mvn帮助:有效的pom
可能会让您了解这是否属实

我还将确保层次结构中的父级不包含将由子级继承的maven jar pom的任何具体配置。如果孩子继承了一个具体的部分,我想这也会触发它包含插件管理配置