指定pom之外的工件版本

时间:2010-06-03 15:51:17

标签: maven-2 continuous-integration hudson

有没有办法在POM文件之外指定工件版本?

我有两个构建工件的CI项目。一个从“开发”分支构建“稳定”开发版本,另一个构建不稳定版本,这是将所有活动特征分支合并到开发分支的结果。我想将稳定版本构建为xyz-1.0.jar,并将集成构建作为xyz-1.0-SNAPSHOT.jar。有没有办法让CI作业运行maven任务或通过命令行指定是否应该构建版本或快照jar而无需手动修改POM?目前我在pom中将版本指定为1.0。我考虑使用发布插件,但我不希望自动版本号增加并标记它。

3 个答案:

答案 0 :(得分:1)

简答:不。以下是一些补充说明:

  • 对于CI下的分支使用“已发布”版本(即非SNAPSHOT)没有多大意义,因为即使有更新的版本可用,也不会再次下载已发布的版本。
  • 应标记已发布的版本(例如1.0),维护是在从标记派生的分支中完成的(例如1.0.1-SNAPSHOT)。
  • 如果要区分从不同分支构建的版本,请在POM中使用不同的版本。

答案 1 :(得分:1)

我能够通过在POM中使用属性然后通过命令行覆盖它来实现此目的。

的pom.xml:

 ...
    <version>${artifactVersion}</version>
    <properties>
       <artifactVersion>1.0</artifactVersion>  <!-- default version -->
    </properties>
    ...

然后覆盖mvn -DartifactVersion=1.0-SNAPSHOT package

但帕斯卡的上述答案更符合我的要求。我的解决方案更像是一种解决方法。

答案 2 :(得分:0)

您应该可以使用maven profiles

来实现这一目标