gpt4 book ai didi

gradle - Gradle脚本中嵌套的动态属性?

转载 作者:行者123 更新时间:2023-12-03 03:42:41 25 4
gpt4 key购买 nike

是否可以在gradle构建脚本中使用嵌套属性对全局变量进行分组?

如果gradle.properties文件包含

mavenUpload.serverUrl=https://someServer.org/mavenrepository

我可以在诸如 ${mavenUpload.serverUrl}或这样的gradle脚本中使用它吗?
// in master gradle.build
task uploadArchives {
description = "Upload to maven repository '${mavenUpload.serverUrl}'."

// call all uploadArchives in the sub projects
dependsOn { subprojects.uploadArchives }
}

甚至有可能动态创建这样的嵌套属性
ext {
mavenUpload {
serverUrl='https://someServer.org/mavenrepository'
login='myUsername'
password='myTopSecretPassword'
}
}

有没有办法在gradle中做类似的事情?

我当前的解决方法是使用下划线“_”代替点“”。

我在gradle 2.13中尝试过的
ext {
// works as expected
myglobal='my global value'

// error :-(
myGlobalNested1 {
myNested='my nested value'
}

// error :-(
myGlobalNested2.ext {
myNested='my nested value'
}

// error :-(
myGlobalNested4.ext.myNested='my nested value'

// error :-(
myGlobalNested5.myNested='my nested value'

myGlobalNested3 = new HashMap<String,Object>()

}

// error :-(
myGlobalNested3.ext.myNested='my nested value'

task demo {
// works as expected
ext.mylocal='my local value'

print """
myglobal = ${myglobal}
mylocal = ${mylocal}
demo.mylocal = ${demo.mylocal}

myGlobalNested.myNested = ${myGlobalNested.myNested}
"""
}

[更新2016-06-11 @opal]

该脚本无法编译。带有 // error :-(的部分导致编译错误

最佳答案

我也在同一个问题上挣扎...

这怎么样?

ext {
parent = ext {
child = ext {
grandChild = ext {
greatGrandChild = "Kourtney"
}
grandChildBrother = "Khloé"
}
childSister = "Kim"
}
}

然后
task demo {
print """
child sister is ${this.ext.parent.childSister}
grand child brother is ${this.ext.parent.child.grandChildBrother}
great grand child is
${this.ext.parent.child.grandChild.greatGrandChild}
"""
}

祝好运!

关于gradle - Gradle脚本中嵌套的动态属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37742163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com