pluginManagement应该在子模块中使用吗?

时间:2015-10-26 11:36:03

标签: maven pom.xml

我在多模块项目中阅读sonatype&#39; tutorial,我发现在子模块中他们使用<pluginManagement>配置如下:

<build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <testFailureIgnore>true</testFailureIgnore>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

这让我感到困惑,因为我认为在父POM中使用<pluginManagement>来为子模块提供通用的插件配置。在儿童poms中使用插件管理的原因是什么?

2 个答案:

答案 0 :(得分:0)

大部分时间<pluginManagement>用于父pom文件。

它配置插件。但是使它们不是构建的活跃部分。因此,您需要将它们添加到Maven pom文件的<plugins>部分。大多数没有在父pom文件中完成,但是在(子)模块中完成,使用/引用那个(父)pom。

答案 1 :(得分:0)

我认为这对使用surefire插件很特别。

由于您使用mvn test执行插件,因此将使用pluginManagement块中指定的配置执行surefire插件。其他插件不是直接执行,而是通过将它们绑定到另一个生命周期阶段,因此必须在plugin块中指定。

请参阅surefire插件的usage page