我在我的 build.gradle
中有以下代码:
version.properties
文件中的内容如下:
buildVersion=1.2.3
$v
变量在 Gradle 构建期间的值为: 1.2.3- Jenkins 构建中变量
$artifactoryVersion
的值为: 1.2.3.1, 1.2.3.2, 1.2.3.x ... 等等,其中第四位数字是 Jenkins BUILD_NUMBER,在 Jenkins 构建期间可用于 Gradle 构建脚本。
但是,当我在没有设置环境变量的桌面上运行此 build.gradle
时,会出现错误,提示 trim()
无法对 null 进行操作(因为在桌面/本地构建中没有 BUILD_NUMBER
)。
我正在尝试找到一种方法:
如果
BUILD_NUMBER
不可用,那么应该在我的脚本中编写什么代码,使得 gradle 构建处理不会因错误而失败,而是将jenkinsBuild="0"
(硬编码)设定为其值。否则,选择在 Jenkins 构建期间获得的值。例如:在 Bash 中,我们设置一个变量
var1=${BUILD_NUMBER:-"0"}
,它将将var1
设置为有效的 Jenkins BUILD 号码(如果它可用且被设置为一个值),否则,如果它为 NULL,则var1="0"
。我不想让每个开发者/用户在某个属性文件中设置这个
BUILD_NUMBER
。我只希望,如果此变量不存在,则代码应将"0"
放入 jenkinsBuilds 变量中,在桌面构建期间不会出现错误。我知道在 Jenkins 构建期间,它工作正常。
// Build Script
def fname = new File( 'version.properties' )
Properties props = new Properties()
props.load( new FileInputStream( fname ) )
def v = props.get( 'buildVersion' )
def env = System.getenv()
def jenkinsBuild = env['BUILD_NUMBER'].trim()
if( jenkinsBuild.length() > 0 ) {
artifactoryVersion = "$v.$jenkinsBuild"
}