Ata*_*hev 6 java maven jenkins
我需要获取一些Jenkins环境变量,如BUILD_NUMBER和BUILD_URL,并将它们作为变量注入我的Maven Java构建中.
我已将此添加到pom.xml中
<properties>
<jenkins.buildUrl>${env.BUILD_URL}</jenkins.buildUrl>
</properties>
Run Code Online (Sandbox Code Playgroud)
在使用mvn install进行构建时,我正在尝试获取变量
private static final String JENKINS_BUILD_URL = System.getProperty("jenkins.buildUrl");
Run Code Online (Sandbox Code Playgroud)
但不幸的是结果是空的......
我做错了什么?
猜猜您正在尝试将此值读入单元测试中吗?然后,您将必须配置surefire插件的环境变量:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<environmentVariables>
<jenkins.buildUrl>${env.BUILD_URL}</jenkins.buildUrl>
</environmentVariables>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
如本文档所述:http : //maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#environmentVariables
请注意,可以在其他插件中执行相同的操作,例如Maven Tomcat插件。
小智 5
这是我如何在我的应用程序中实现的
在 pom.xml 中添加一个属性
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jenkins.buildNumber>${env.BUILD_NUMBER}</jenkins.buildNumber>
</properties>
Run Code Online (Sandbox Code Playgroud)
在 .properties 文件中创建一个新属性
jenkins.build.number = ${jenkins.buildNumber}
Run Code Online (Sandbox Code Playgroud)
通过添加在 Maven 中启用过滤
jenkins.build.number = ${jenkins.buildNumber}
Run Code Online (Sandbox Code Playgroud)
然后使用以下代码从java中读取它
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
Run Code Online (Sandbox Code Playgroud)
将 maven 目标更改为干净的包 -Denv.BUILD_NUMBER=${BUILD_NUMBER}
我在我们的应用程序的关于页面中显示了这个。
| 归档时间: |
|
| 查看次数: |
11475 次 |
| 最近记录: |