正确设置gradle属性的默认值

时间:2013-03-15 05:38:24

标签: properties groovy gradle

build.gradle中有以下内容:

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "$repoUrl") {
                authentication(userName: "$repoUser", password: "$repoPassword")
            }
        }
    }
}

如何使$repoUrl具有默认值file://$buildDir/repo

我尝试将repoUrl=file://$buildDir/repo放在gradle.properties中,但它不能按预期工作,因为似乎$repoUrl不会递归计算。

2 个答案:

答案 0 :(得分:2)

看起来是因为repoUrl=file://$buildDir/repo被视为纯字符串,没有buildDir替换。

如果可以尝试这个:

repository(url: repoUrl.replace('$buildDir', "$buildDir")) {

或类似的东西:

// run as 'gradle build -PreportUrl=blabla'
def repoUrl = "file://$buildDir/repo"
if (binding.variables.containsKey('repoUrl ')) {
 repoUrl = binding.variables.get('repoUrl ')
}

答案 1 :(得分:1)

您无法从属性文件中引用Gradle属性,例如project.buildDir。属性文件非常有限,一般来说,我建议将所有信息保存在Gradle构建脚本中。您可以拥有任意数量的构建脚本,并在其他脚本中包含apply from: "path/to/script"