使用maven配置文件进行工件版本控制

时间:2012-05-09 10:40:42

标签: maven build versioning profile artifactory

我希望项目的版本号为正常发布版本的以下格式:

<version>1.0-SNAPSHOT</version>
<version>1.0.1-SNAPSHOT</version>
......

另一方面,我希望为每个合并更改的内置工件如下所示:

<version>1.0-SNAPSHOT-${timestamp}</version>

我可以使用maven个人资料来实现这一目标吗?类似的东西:

<profiles>
    <profile>
        <id>normal</id>
        <version>1.0-SNAPSHOT<version>
    </proifle>
    <profile>
        <id>build</id>
        <version>1.0-SNAPSHOT-${timestamp}<version>
    </proifle>
</profiles>

这样我就可以构建它:

mvn package -P normal  // this gives me artifact-1.0-SNAPSHOT.jar
or
mvn package -P build     // this gives me artifact-1.0-SNAPSHOT-${timestamp}.jar 

如果个人资料可以解决这个问题,那么其他方法是什么?

2 个答案:

答案 0 :(得分:6)

虽然我不推荐这种方法,但您可以使用配置文件执行此任务。以下是它的完成方式:

<version>${projectVersion}</version>
...
<profiles>
    <profile>
        <id>normal</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <projectVersion>1.0-SNAPSHOT</projectVersion>
        </properties>
    </profile>
    <profile>
        <id>build</id>
        <properties>
            <projectVersion>1.0-SNAPSHOT-${timestamp}</projectVersion>
        </properties>
    </profile>
</profiles>

答案 1 :(得分:2)

使用Builder Number Plugin和/或评估内置timestamp property。无论如何,您的方法推荐,因为SNAPSHOT始终是最新的。