我正在尝试为多模块项目设置maven插件管理。我的项目结构看起来像这样
base_project
-- pom.xml
-- projectA
-- pom.xml
-- projectB
-- pom.xml
-- projectC
-- pom.xml
-- project D
-- pom.xml
在基础项目的pom.xml中,我在PluginManagement中定义了一个插件
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
我希望projectA继承pluginManagement,以便我可以在projectB和projectC中使用该插件。我想要的是,当我构建base_project时,插件应仅针对projectB,projectC和projectD运行,而不是针对projectA运行。 projectA应该只继承base_project的pluginManagement。我尝试了两种设置,但没有运气
设置1
使用此设置,当projectB或projectC构建时,spring-boot-maven-plugin不会运行
projectA pom.xml看起来像
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
而projectB和projectC pom.xml看起来像
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
设置2
通过此设置,spring-boot-maven-plugin也可以针对projectA运行。
projectA pom.xml看起来像
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
而projectB和projectC pom.xml看起来像
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
答案 0 :(得分:0)
搞定了。我们不需要在projectA的pom.xml中定义插件。我们可以直接在儿童pom中使用它。