如何使用maven获取Jenkins构建编号

8
我正在尝试使用以下代码通过maven pom.xml读取Jenkins编号。问题是,构建失败并出现了我下面指定的错误。我参考了Jenkins官方文档构建软件项目。如果我尝试在控制台中使用任何文本替换${BUILD_NUMBER},则会打印该文本而不是变量。
POM配置文件引用:
<profiles>
    <profile>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <build.number>${BUILD_NUMBER}</build.number>
        </properties>
    </profile>
</profiles>

POM系统属性:

<systemPropertyVariables>
    <buildnumber>${build.number}</buildnumber>
</systemPropertyVariables>

如果我做错了什么,请告诉我。


3
尝试使用${env.BUILD_NUMBER} - Daniel Kaplan
1个回答

9
我曾在执行 Maven 命令前,调用了一些命令,例如 mvn versions:setmvn -N versions:update-child-modules。我的 pom 文件版本为 x.y.z,因此我将其修改为 x.y.z.$buildnumber。如需完全替换,请使用 $buildnumber,但请记住 Maven 将更新 pom.xml 并将其提交回 SCM,使次要版本号增加 1。您需要在下一次构建中处理这个问题。
请注意,${BUILD_NUMBER} 是在 bash 中可用的环境变量(我可以在我的 bash 脚本中获取它),而不是 Maven 变量。
正如在How to refer environment variable in POM.xml?中所解释的那样,您可以使用${env.variable_name}

谢谢大家,现在我能够通过使用Maven获取Jenkins构建编号。我将其作为系统参数在Maven中使用,并成功获取了构建编号。 - Yellesh Chaparthi
如果这个答案解决了问题,请接受它为正确答案,这样其他有类似问题的人也可以找到解决方法。祝好。 - Lovato

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接