Gradle:从外部文件读取属性

8

我在我的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')
    }
    ...
}

但是显然,它找不到属性。我该如何将此文件添加到类路径中,以便可以使用其中的属性?


1
也许这个答案是你需要的:https://dev59.com/NWgt5IYBdhLWcg3w3xTC#33484783。 - Opal
这个回答解决了你的问题吗?Gradle - 包含属性文件 - xeruf
1个回答

19

要从一个通用属性文件读取值,可以使用类似下面这样的代码:

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

获取图像时出现以下错误--->错误:(24,0)java.lang.String.call()方法的签名不适用于参数类型:(java.lang.String)值:[1] 可能的解决方案:wait(),any(),wait(long),split(java.lang.String),take(int),any(groovy.lang.Closure) <a href="openFile:/home/arpitjoshi/Pictures/MetaDataExtraction/app/build.gradle">打开文件</a> - aj0822ArpitJoshi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接