我有一个 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/