【问题标题】:Maven pluginManagement multiple parentMaven插件管理多个父级
【发布时间】:2016-11-15 18:20:26
【问题描述】:

我正在尝试为多模块项目设置 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-您要执行哪个目标? 2- 看看你孩子 pom 的有效 Pom,它会显示你的 pom 的真实样子 [help:effective-pom]
  • 成功了。我们不需要在 projectA 的 pom.xml 中定义插件。我们可以直接在child pom中使用。

标签: maven maven-3 maven-plugin


【解决方案1】:

成功了。我们不需要在 projectA 的 pom.xml 中定义插件。我们可以直接在child pom中使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-27
    • 2013-09-28
    • 1970-01-01
    • 2013-02-04
    • 2012-06-30
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    相关资源
    最近更新 更多