Maven pom 中plugins和pluginManagement 的区别

Posted wei198621

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven pom 中plugins和pluginManagement 的区别相关的知识,希望对你有一定的参考价值。

Maven pom 中plugins和pluginManagement的区别
https://www.cnblogs.com/whx7762/p/8072755.html

pluginManagement是表示插件声明,即你在项目中的pluginManagement下声明了插件,Maven不会加载该插件,pluginManagement声明可以被继承。

pluginManagement一般是用来在父POM中定义,提供给子POM使用,子POM也可以覆盖这个定义,而且你在父POM中定义了版本之后,子模块中直接应用groupId和artifactId,而不用指定版本,同时也方便统一管理;而在父POM中的pluginManagement并不会介入到Maven的生命周期。

plugins就是直接引入一个plugin,而且可以绑定到Maven相关的生命周期上。

pluginManagement主要是为了统一管理插件,确保所有子POM使用的插件版本保持一致,类似dependencies和dependencyManagement。

例子:

父POM

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <attach>true</attach>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</pluginManagement>

子POM

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
    </plugin>
</plugins>

以上是关于Maven pom 中plugins和pluginManagement 的区别的主要内容,如果未能解决你的问题,请参考以下文章

maven项目中POM文件报plugins找不到错误

Eclipse (pom.xml) 中的 Maven 错误:传输 org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4 失败

Maven`pom.xml`中<plugins>和<pluginManagement>标签之间的区别[重复]

Maven中plugins和pluginManagement的区别

maven---Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4

POM报错Failure to transfer org.apache.maven.plugins:maven-resources-plugin:pom:2.6 from