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

标签 maven pom.xml profiles

我有一个 maven 项目 - 它是 jenkins 的插件。它的 parent 应该是:

<parent>
  <groupId>org.jenkins-ci.plugins</groupId>
  <artifactId>plugin</artifactId>
  <version>1.414</version>
</parent>

但同时这个插件也可以用于hudson,无需更改任何代码行。但它的父项目应该是:
<parent>
  <groupId>org.jvnet.hudson.plugins</groupId>
  <artifactId>hudson-plugin-parent</artifactId>
  <version>2.0.1</version>
</parent>

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

或者
mvn package -P hudson

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

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

最佳答案

如前所述,这是不可能的。
此外,不可能为父版本设置属性,因为插值发生的时间比配置文件的处理早得多。

我建议您创建一个 masterbuild 项目,如下所示:

master
|-plugin-jenkins
|-plugin-hudson
|-plugin-assembly

大师应该像往常一样构建所有三个。但是,在程序集中,您可以将两个插件中的每一个作为依赖项添加到单独的配置文件中。而且...每个插件都可以拥有您喜欢的父级。

这显然与 Maven 约定有些偏差,但我相信它可以解决您的问题。

关于Maven:根据配置文件选择父项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6507019/

相关文章:

maven - 以 Maven 方式为不同平台构建

jakarta-ee - 仅使用 Maven 在 CI 服务器上运行集成测试

maven - 如何从 grails 应用程序中选择 maven jar

maven - 无法从配置文件配置附加系统属性

java - Pentaho Maven 依赖项

java - commons-fileupload 依赖有什么问题?

Maven 资源过滤破坏下载

c# - ASP.NET 配置文件 - 向现有用户添加配置文件

java - 带有 m2e 的 Eclipse Mars 无法更改 java 编译路径

maven - 缺少 Artifact org.springframework.security :spring-security-parent:jar:3. 0.7.RELEASE:compile