jenkins - 有没有办法将当前的 BUILD_NUMBER 从 Jenkins 构建传递到 Gradle 守护进程?

标签 jenkins gradle environment-variables daemon

我正在 Gradle 脚本中通过调用访问 Jenkins 内部版本号:

def buildNumber = System..getenv('BUILD_NUMBER')

我第一次运行构建时效果很好。第二次运行构建时,该数字不会增加,它与上次构建运行时保持相同。 我使用的是 4.4.1 版本的 Gradle。我不记得早期版本有过同样的问题。

我当前的解决方法是将 --no-daemon 开关传递给 Gradle。但是,这样我就无法从守护进程功能中受益。有没有办法使用守护进程并在 Gradle 构建中仍然获得正确的构建号?

最佳答案

您使用的是 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.

您可以将 'BUILD_NUMBER' 作为系统属性 (-DbuildNumber=$BUILD_NUMBER) 或 Gradle 项目属性 (-PbuildNumber=$BUILD_NUMBER) 通过 Gradle 命令行来代替。

关于jenkins - 有没有办法将当前的 BUILD_NUMBER 从 Jenkins 构建传递到 Gradle 守护进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48069361/

相关文章:

PHP getenv ('HOSTNAME' )

java - 使用 Maven 从 Ubuntu 在 Jenkins 中集成 Selenium

java - Cucumber 中的 Rerun.txt 指的是类路径而不是 Feature 文件夹

gradle - 按照约定将文件复制到Tar时,将fileMode设置为* .sh

批量动态嵌套环境变量

c++ - getenv 是否缓存结果?

git - Jenkins 和 Bitbucket 集成

continuous-integration - 在 hudson/jenkins 中加入了 "Build other projects"的控制台输出

android - Gradle:任务 compileReleaseAidl 执行失败

java - Android Studio:运行我的应用程序时出现:“Could not create the Java Virtual Machine”错误