有没有办法将当前的BUILD_NUMBER传递给Jenkins构建的Gradle deamon?

Dan*_*Dan 9 daemon environment-variables gradle jenkins

我通过调用以下方式访问Gradle脚本中的Jenkins内部版本号:

def buildNumber = System..getenv('BUILD_NUMBER')
Run Code Online (Sandbox Code Playgroud)

它在我第一次运行构建时工作正常.第二次运行构建时,数字不会增加,它与之前的构建运行保持不变.我正在使用4.4.1版本的Gradle.我不记得早期版本遇到同样的问题.

我目前的解决方法是将--no-daemon切换到Gradle.但是,这样我就无法从守护进程功能中受益.有没有办法使用守护进程ans仍然在Gradle构建中获得正确的内部版本号?

wol*_*s42 5

您正在使用Java 9吗?使用Java 9,Gradle无法再修改守护程序的环境-因此您无法使用环境变量来传递属性。您应该在日志中看到以下警告:

Warning: Unable able to set daemon's environment variables to match the client because: 
Java 9 does not support modifying environment variables.
Run Code Online (Sandbox Code Playgroud)

您可以改为通过Gradle的命令行将其'BUILD_NUMBER'作为系统属性(-DbuildNumber=$BUILD_NUMBER)或Gradle项目属性(-PbuildNumber=$BUILD_NUMBER)传递。