1

我正在使用下面的代码将 Jenkins BUILD_NUMBER 放入 Build Config 对象中。

我希望能够从 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 

          }
     }


}
4

0 回答 0