从android配置中读取gradle.properties值

时间:2013-03-10 20:49:22

标签: android gradle

我正在使用下面的代码将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 

          }
     }


}

0 个答案:

没有答案