以下のコードを使用して、JenkinsBUILD_NUMBERをBuildConfigオブジェクトに配置しています。
gradle.propertiesからこの値をデフォルトにできるようにしたいのですが、問題が発生しています。ドキュメントからは、変数が相互にオーバーライドしているように見えますが、このandroid conext内からは、変数にアクセスできませんでした...したがって、System.getenv()を使用する必要があります...
android{
....
defaultConfig{
ext.env = System.getenv()
ext.buildNumber = env.BUILD_NUMBER?.toInteger()
ext.buildId = env.BUILD_ID
println "Build Number: $buildNumber"
println "Build Id: $buildId"
buildConfig "public final static int BUILD_NUMBER = $buildNumber;"
buildConfig 'public final static String BUILD_ID = "' + ext.buildId + '";'
}
}
更新:これをもう少し遊んだ後、android {}内で、build.gradleで定義されている変数にアクセスできるが、gradle.propertiesからはアクセスできないことに気付きました。
この範囲に到達するための秘訣があるかもしれませんが、私はまだそれを見つけていません。
例:gradle.properties "foo = bar"に変数があり、これがbuild.gradleである場合
def foo2="bar2"
println foo2 // works
println foo // works
android{
println foo2 // works
println foo // works
productFlavors {
println foo2 // works
println foo // works
tablet{
println foo2 // works
println foo // blows up
}
}
}