maven:在父POM中配置一个插件来为所有子模块执行任务

问题描述 投票:0回答:1

我有以下 Maven 项目结构。根 POM 引用 my-modules,而 my-modules 又引用其子模块。

---POM
   |
   |--my-modules
        |--POM
        |
        |---module1
           |
           |--POM
        |---module2
           |
           |--POM
        ....
        ....

在每个子模块(模块1、模块2...)的POM中,我配置了一个插件来执行某些任务。因此,除了模块名称、版本等之外,所有子模块的任务都是相同的。

我认为是否可以将其移动到一些常见的位置,例如 my-modules 中的 POM 或根 POM。

可行吗?

java maven pom.xml
1个回答
0
投票

对于这种情况,有两种可能的最佳实践:

  1. 将插件放入模块
    my-modules
    pom 文件(正如您已经完成的那样)以使其适用于每个子模块。
  2. 通过
    build -> pluginManagement
    部分将插件配置定义到根 pom 中,然后通过
    build -> plugins
    部分在每个所需模块上激活它,仅提供插件 groupIdartificatId

这是第二个解决方案的示例:

root.pom

<build>
  <pluginManagement>
    <plugins>
      <plugin>
        <groupId>some-group</groupId>
        <artifactId>some-artifact</artifactId>
        <version>some-version</version>
        <configuration>
          <!-- Some settings -->
        </configuration>
        </plugin>
     <plugins>
  </pluginManagement>
</build>

module1.xml

<build>
  <plugins>
    <plugin>
       <groupId>some-group</groupId>
       <artifactId>some-artifact</artifactId>
    </plugin>
  </plugins>
</build>
© www.soinside.com 2019 - 2024. All rights reserved.