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

She*_*jie 3 versioning profile build artifactory maven

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

<version>1.0-SNAPSHOT</version>
<version>1.0.1-SNAPSHOT</version>
......
Run Code Online (Sandbox Code Playgroud)

另一方面,我希望为每个合并的变更都有一个构建的工件,如下所示:

<version>1.0-SNAPSHOT-${timestamp}</version>
Run Code Online (Sandbox Code Playgroud)

我可以使用maven配置文件实现这一目标吗?就像是:

<profiles>
    <profile>
        <id>normal</id>
        <version>1.0-SNAPSHOT<version>
    </proifle>
    <profile>
        <id>build</id>
        <version>1.0-SNAPSHOT-${timestamp}<version>
    </proifle>
</profiles>
Run Code Online (Sandbox Code Playgroud)

所以我可以建立它像:

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 
Run Code Online (Sandbox Code Playgroud)

如果配置文件可以解决这个问题,那么其他方法是什么?

And*_*nov 7

虽然我不建议使用此方法,但您可以使用配置文件执行此任务.以下是它的完成方式:

<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>
Run Code Online (Sandbox Code Playgroud)