0

是否有可能做到这一点?

例如,可以执行以下操作:

System.getEnv("$(env.BUILD_URL)");

我无法访问 Jenkins,所以无法自己尝试 :(

任何帮助将不胜感激。

4

1 回答 1

4

假设您使用的是 Maven(您已将这个问题标记为这样),我只需将以下内容添加到我的 pom.xml 文件中:

...
<properties>
    <!-- Hudson properties: see http://wiki.hudson-ci.org/display/HUDSON/Building+a+software+project#Buildingasoftwareproject-HudsonSetEnvironmentVariables -->
    <jenkins.buildId>${env.BUILD_ID}</jenkins.buildId>
    <jenkins.buildNumber>${env.BUILD_NUMBER}</jenkins.buildNumber>
    <jenkins.buildTag>${env.BUILD_TAG}</jenkins.buildTag>
    <jenkins.cvsBranch>${env.CVS_BRANCH}</jenkins.cvsBranch>
    <jenkins.executorNumber>${env.EXECUTOR_NUMBER}</jenkins.executorNumber>
    <jenkins.hudsonUrl>${env.HUDSON_URL}</jenkins.hudsonUrl>
    <jenkins.javaHome>${env.JAVA_HOME}</jenkins.javaHome>
    <jenkins.jobName>${env.JOB_NAME}</jenkins.jobName>
    <jenkins.svnRevision>${env.SVN_REVISION}</jenkins.svnRevision>
    <jenkins.workspace>${env.WORKSPACE}</jenkins.workspace>
</properties>
...

...然后从您的代码中您可以简单地执行以下操作:

String url = System.getProperty("jenkins.hudsonUrl");  // could be null

将这些放入属性中可以使我的工作变得更加简单,尤其是在使用 Maven 配置文件来控制我的构建时。例如,我确保创建一个“jenkins”配置文件,当我在 Jenkins 构建服务器上构建时激活该配置文件。完成此操作后,将设置所有上述 jenkins 属性。当不作为 jenkins 配置文件运行时,这些属性将设置为其他一些默认值。无论如何,这是另一个话题,但值得深思。希望这是有道理的。

于 2014-01-07T04:16:44.510 回答