_build.gradle
_に次のコードがあります
_version.properties
_の内容は次のとおりです。
_buildVersion=1.2.3
_
$v
_変数の値は次のとおりです:1.2.3$artifactoryVersion
_変数の値は、1.2.3 .1、1.2.3 .2、1.2.3 .x ...など。4桁目はJenkins BUILD_NUMBERで、Jenkinsビルド中にビルドスクリプトを段階的に使用できます。しかし、デスクトップで_build.gradle
_を実行しているときに、BUILD_NUMBER変数を使用できないか、ENVIRONMENT変数に設定しないと、trim()
がnullで動作できないというエラーが表示されます。 (デスクトップ/ローカルビルドには_BUILD_NUMBER
_がないため)。
私は方法を見つけようとしています.
_BUILD_NUMBER
_が利用できない場合、エラーでgradleビルド処理が失敗する代わりに、_jenkinsBuild = "0"
_(ハードコーディング)を設定し、そうでないときに取得するものを選択するように、スクリプトに何をコーディングする必要がありますかJenkinsビルド。
例:Bashでは、変数_var1=${BUILD_NUMBER:-"0"}
_を設定します。変数_var1
_は、有効で値に設定されている場合は_var1 = "0"
_を有効なJenkins BUILD番号に設定します。
各開発者/ユーザーに、プロパティファイルでこの_BUILD_NUMBER
_を設定させたくありません。私が望むのは、この変数が存在しない場合、コードはjenkinsBuilds変数に_"0"
_を配置する必要があり、デスクトップビルド中にエラーが発生しないことです。 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"
}
_
必要なのは、通常のJava/Groovyコードです。
def jenkinsBuild = System.getenv("BUILD_NUMBER") ?: "0"
上記のコードは、Groovyの「elvis」演算子を使用し、Javaの三項演算子を使用する次のコードの短縮形です。
def buildNumber = System.getenv("BUILD_NUMBER")
def jenkinsBuild = buildNumber != null ? buildNumber : "0"