4

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

<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 

如果配置文件可以解决这个问题,还有哪些其他方法?

4

2 回答 2

9

虽然我不推荐这种方法,但您可以使用配置文件来完成此任务。这是如何完成的:

<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>
于 2012-05-09T10:55:12.707 回答
2

使用Builder Number 插件和/或评估内置的时间戳属性无论如何,不​​建议使用您的方法,因为 SNAPSHOT 必须始终是最新的。

于 2012-05-09T11:20:29.567 回答