Maven插件管理多个父级

时间:2016-11-15 18:20:26

标签: maven maven-3 maven-plugin

我正在尝试为多模块项目设置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>

1 个答案:

答案 0 :(得分:0)

搞定了。我们不需要在projectA的pom.xml中定义插件。我们可以直接在儿童pom中使用它。