Maven:根据配置文件选择父项目

Dra*_*ter 5 profiles pom.xml maven

我有一个 Maven 项目 - 它是 jenkins 的插件。它的父级应该是:

<parent>
  <groupId>org.jenkins-ci.plugins</groupId>
  <artifactId>plugin</artifactId>
  <version>1.414</version>
</parent>
Run Code Online (Sandbox Code Playgroud)

但同时这个插件也可以用于hudson,无需更改任何代码行。但它的父项目应该是:

<parent>
  <groupId>org.jvnet.hudson.plugins</groupId>
  <artifactId>hudson-plugin-parent</artifactId>
  <version>2.0.1</version>
</parent>
Run Code Online (Sandbox Code Playgroud)

我可以为此指定 2 个不同的配置文件并使用它们相应地为 jenkins 或 hudson 构建插件吗?所以我这样称呼:

mvn package -P jenkins
Run Code Online (Sandbox Code Playgroud)

或者

mvn package -P hudson
Run Code Online (Sandbox Code Playgroud)

我尝试在配置文件中指定属性,但这些属性不会被<parent>标记内的值替换。那么是否有其他可能性为两者构建插件,但使用尽可能多的通用代码和文件?

补充:那么,如果我不能这样做,我该怎么办?如何重构?新的结构应该是什么样的?

Dra*_*ter 1

目前,我们决定坚持使用 1 个存储库和 2 个单独的 pom.xml 文件,并提供 pom.xml 用于构建项目的 Maven 密钥。

mvn package -f pom-jenkins.xml
mvn package -f pom-hudson.xml
Run Code Online (Sandbox Code Playgroud)