gradle脚本中的嵌套动态属性?
是否可以在gradle构建脚本中使用嵌套属性对全局变量进行分组 如果gradle脚本中的嵌套动态属性?,gradle,Gradle,是否可以在gradle构建脚本中使用嵌套属性对全局变量进行分组 如果gradle.properties文件包含 mavenUpload.serverUrl=https://someServer.org/mavenrepository 我可以在诸如${mavenUpload.serverUrl}之类的gradle脚本中使用它吗 // in master gradle.build task uploadArchives { description = "Upload to maven re
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有没有类似的方法
我目前的解决方法是使用下划线“uu”而不是点”
我在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}
"""
}
ext{
//工作如期进行
myglobal='my global value'
//错误:-(
myGlobalNested1{
myNested='my nested value'
}
//错误:-(
myGlobalNested2.ext{
myNested='my nested value'
}
//错误:-(
myGlobalNested4.ext.myNested='my嵌套值'
//错误:-(
myGlobalNested5.myNested='my nested value'
myGlobalNested3=新HashMap()
}
//错误:-(
myGlobalNested3.ext.myNested='my嵌套值'
任务演示{
//工作如期进行
ext.mylocal='我的本地值'
打印“”
myglobal=${myglobal}
mylocal=${mylocal}
demo.mylocal=${demo.mylocal}
myGlobalNested.myNested=${myGlobalNested.myNested}
"""
}
[更新2016-06-11@opal]
此脚本未编译。带有
//错误:-(
导致编译错误的部分也遇到了相同的问题
这是怎么回事
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}
"""
}
祝你好运!我不建议在另一个函数中使用
ext
。这会导致gradle出现一些非常奇怪的行为。的顶部答案为我们提供了创建嵌套ext变量的正确方法
这将是在gradle中创建嵌套变量的正确方法
ext {
myarray = [
name0 : "xx",
name1 : "xx"
]
}
对我来说,这个问题有点不清楚。你能提供一个不起作用的脚本的例子吗?