gradle - 设置从 build.gradle 内的 local.properties 读取的属性

标签 gradle build.gradle

我使用的是 v3.4 级。我已将以下属性移至名为 local.properties 的文件(与 build.gradle 位于同一目录):

本地属性

nexusUsername=someuser
nexusPassword=somepassword

build.gradle

File secretPropsFile = file('./local.properties')
if (secretPropsFile.exists()) {
    Properties p = new Properties()
    p.load(new FileInputStream(secretPropsFile))
    p.each { name, value ->
       project.set name, value
    }
} else {
    throw new IllegalStateException("secret.properties could not be located for build process")
}

我遇到以下异常:

Could not find method set() for arguments [nexusUsername, someuser] on root project 'some-java-project of type org.gradle.api.Project.

最佳答案

您收到的错误是正确的。要设置属性,您需要使用ext。请查看docs .

所以下面的代码可以完成这项工作:

File secretPropsFile = file('./local.properties')
if (secretPropsFile.exists()) {
    Properties p = new Properties()
    p.load(new FileInputStream(secretPropsFile))
    p.each { name, value ->
        ext[name] = value
    }
} else {
    throw new IllegalStateException("secret.properties could not be located for build process")
}

println project.nexusPassword
println project.nexusUsername //property is set in project's scope via ext

关于gradle - 设置从 build.gradle 内的 local.properties 读取的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43876813/

相关文章:

android - 如何在Android Gradle构建中使用pom文件?

android - Android Gradle错误-任务 ':app:dexDebug'的执行失败

android - 现在必须显式声明 Kapt 注释处理器

android - Gradle 嵌套、多项目、共享库环境设置

android - 在gradle中重命名apk

android - Gradle脚本,如何在编译部署后立即执行任务(文件复制)

gradle - Gradle 短任务

spring - Gradle任务将Spring Boot项目打包到耳朵

cordova - Task.leftShift(Closure) 方法已被弃用

Gradle:使用 BuildScript RepositoryHandler 作为项目存储库处理程序