我可以使用local.properties存储一些信息吗?

时间:2017-05-21 08:40:20

标签: android gradle android-gradle

最近我使用indexOf()将我的库上传到maven。

正如其自述文件所述:

./gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false

我觉得每次想要更新我的库版本时都放置很多参数太无聊了。所以我将bintrayUser和bintrayKey存储到local.properties

local properties

ndk.dir=/home/coxier/Android/Sdk/ndk-bundle
sdk.dir=/home/coxier/Android/Sdk
bintrayUser=coxier
bintrayKey=xxxxx

但是当我调用时:

 ./gradlew clean build bintrayUpload -PdryRun=false

我收到错误:

  
      
  • 出了什么问题:   任务':library:bintrayUpload'的执行失败。   Bintray用户不能为空!
  •   

通过错误日志,我认为我的lib的build.gradle找不到bintrayUser和bintrayKey。

2 个答案:

答案 0 :(得分:0)

经过一番尝试,我找到了解决方案。

Properties properties = new Properties()
InputStream inputStream = project.rootProject.file('local.properties').newDataInputStream() ;
properties.load( inputStream )
bintrayUser = properties.getProperty('bintrayUser')
bintrayKey = properties.getProperty('bintrayKey'

答案 1 :(得分:0)

你看过gradle.properties文件吗?

这是使用gradle.properties文件的一种更简单的方法:

将您的属性称为abc,其值为v gradle.properties文件,如此

abc=v

在build.gradle文件中,访问此属性:

println project.properties['abc']

以下是Gradle用户指南的Chapter 12链接