我有以下 Maven 项目结构。根 POM 引用 my-modules,而 my-modules 又引用其子模块。
---POM
|
|--my-modules
|--POM
|
|---module1
|
|--POM
|---module2
|
|--POM
....
....
在每个子模块(模块1、模块2...)的POM中,我配置了一个插件来执行某些任务。因此,除了模块名称、版本等之外,所有子模块的任务都是相同的。
我认为是否可以将其移动到一些常见的位置,例如 my-modules 中的 POM 或根 POM。
可行吗?
对于这种情况,有两种可能的最佳实践:
my-modules
pom 文件(正如您已经完成的那样)以使其适用于每个子模块。build -> pluginManagement
部分将插件配置定义到根 pom 中,然后通过 build -> plugins
部分在每个所需模块上激活它,仅提供插件 groupId 和 artificatId。这是第二个解决方案的示例:
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>