我必须在 Maven 配置文件中复制插件配置吗?
Do I have to duplicate plugin configuration in Maven profiles?
我正在使用 rpm-maven-plugin 创建一个 RPM 来安装我的 java 项目。我需要为 CentOS 5 和 CentOS 7 构建 RPM。我已经在使用配置文件来设置属性,这些属性包含一些在两者之间不同的 RPM 依赖项的名称,然后在 rpm 插件中引用这些属性。
我现在还需要根据 cent5 和 cent7 配置文件更改 RPM 放置的文件(cent 5 仍然使用 init 脚本,cent 7 已经转到 systemd 的单元文件)。我想不出一种通过设置属性来做到这一点的简单方法,我需要在每个属性中包含不同的文件映射。我是否需要在两个配置文件中复制我的(长)RPM 插件配置才能获得更改?这感觉很危险,因为插件配置很长,重复将不可避免地导致开发人员在未来对一个进行更改而遗漏另一个。有没有办法只使用配置文件添加到插件配置?
跨 maven 配置文件管理复杂插件配置的小改动的最佳方法是什么?
使用 Maven 的 aggregation (with sub-modules):
Inheritance and aggregation create a nice dynamic to control builds through a single, high-level POM. You will often see projects that are both parents and aggregators.
和 inheritance (with a parent POM):
A parent project is one that passes its values to its children. A multimodule project simply manages a group of other subprojects or modules.
另请参阅此 answer to Maven and Profiles: ...。
我正在使用 rpm-maven-plugin 创建一个 RPM 来安装我的 java 项目。我需要为 CentOS 5 和 CentOS 7 构建 RPM。我已经在使用配置文件来设置属性,这些属性包含一些在两者之间不同的 RPM 依赖项的名称,然后在 rpm 插件中引用这些属性。
我现在还需要根据 cent5 和 cent7 配置文件更改 RPM 放置的文件(cent 5 仍然使用 init 脚本,cent 7 已经转到 systemd 的单元文件)。我想不出一种通过设置属性来做到这一点的简单方法,我需要在每个属性中包含不同的文件映射。我是否需要在两个配置文件中复制我的(长)RPM 插件配置才能获得更改?这感觉很危险,因为插件配置很长,重复将不可避免地导致开发人员在未来对一个进行更改而遗漏另一个。有没有办法只使用配置文件添加到插件配置?
跨 maven 配置文件管理复杂插件配置的小改动的最佳方法是什么?
使用 Maven 的 aggregation (with sub-modules):
Inheritance and aggregation create a nice dynamic to control builds through a single, high-level POM. You will often see projects that are both parents and aggregators.
和 inheritance (with a parent POM):
A parent project is one that passes its values to its children. A multimodule project simply manages a group of other subprojects or modules.
另请参阅此 answer to Maven and Profiles: ...。