maven pluginManagement不起作用

bq8i3lrv  于 2023-08-03  发布在  Maven
关注(0)|答案(1)|浏览(144)

这是父POM中的pluginManagement,它可以由子项目执行,而子项目中没有定义插件,为什么??

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <classifier>exec</classifier>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

字符串
但是如果我从parant POM中删除这个插件,那么子项目就不能执行了。

lb3vh1jj

lb3vh1jj1#

在你的父母POM中,你需要有这样的东西:

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.5.7.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <classifier>exec</classifier>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

字符串
然后,在扩展此POM的项目中,您只需要执行以下操作:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>


这里的想法是,您不需要在所有地方复制相同的代码。您可以在一个中心位置定义设置,然后扩展它们。
在您的原始代码中,您没有定义<version/>。通常,在父POM-s中,您希望控制<dependencies/><plugins/>的版本。对于依赖项,你也可以定义<exclusions/><scope/>
对于插件,您可以集中定义相同的配置,然后,如果出现您希望它稍微不同的情况,您可以在扩展POM中应用必要的更改。
如果在您的父POM中,您还在<pluginManagement/>部分之外定义了<plugins/>,那么将为扩展此父POM的任何项目调用这些插件。

相关问题