Gradle:从外部文件中读取属性

时间:2016-01-04 12:22:02

标签: android gradle android-gradle

我在Android项目中创建了一个包含以下数据的文件version.properties

version.code=1
version.name="1.0.0"

现在我想以这种方式在build.gradle文件中使用这个属性:

android {

    ...
    defaultConfig {
        ...
        versionCode project.property('version.code')
        versionName project.property('version.name')
    }
    ...
}
但是,显然,它找不到属性。如何将此文件添加到classpath以便我可以使用其属性?

1 个答案:

答案 0 :(得分:13)

要从通用属性文件中读取值,您可以使用以下内容:

def Properties props = new Properties()
def propFile = file('../version.properties')   //pay attention to the path
def versionCode;
if (propFile.canRead()){
    props.load(new FileInputStream(propFile))

    if (props!=null && props.containsKey('version.code') && props.containsKey('version.name')) {

        versionCode = props['version.code']
        ....

   }
}

您可以使用标准 gradle.properties

VERSION_NAME=1.2.1

然后在build.gradle中,您可以使用:

versionName project.VERSION_NAME

另一种方式是在.gradle文件中设置这些值(例如在您的顶级文件中)

ext {
  myVersionCode =  ...
  myVersionName =  ...
}

然后在module/build.gradle文件中,您可以执行以下操作:

versioneCode   rootProject.ext.myVersionCode