儿童Maven测试罐

时间:2011-11-29 18:11:25

标签: maven maven-plugin

我们项目中有很多模块,我们希望为其中一些模块启用测试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,我只能在我感兴趣的模块中添加它。

还有其他更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

通常情况下,您的描述不应该是可能的。如果我不得不猜测,我会说,因为你的包装类型是jar maven-jar-plugin的配置被插入到你的有效pom中。然后,由于配置存在,它还使用插件管理部分的配置。运行mvn help:effective-pom可能会提供一些有关这是否属实的见解。

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