同名类别字段的Gradle(Groovy?)语法
这对某些人来说是显而易见的,但不知怎么的,我却无法理解。我正在使用gradle脚本,其中有一部分类似于以下内容:同名类别字段的Gradle(Groovy?)语法,gradle,Gradle,这对某些人来说是显而易见的,但不知怎么的,我却无法理解。我正在使用gradle脚本,其中有一部分类似于以下内容: javascript.source { dev { buildSrc 'some/path' include '*.js' exclude '*.min.js' } } 现在,我可以将其修改为: javascript.source { dev { buildSrc
javascript.source {
dev {
buildSrc 'some/path'
include '*.js'
exclude '*.min.js'
}
}
现在,我可以将其修改为:
javascript.source {
dev {
buildSrc 'some/path'
buildSrc 'some/other/path'
include '*.js'
exclude '*.min.js'
}
}
之后,我调用javascript.source.dev.files(下面是一个SourceSet),并获取两个目录中的所有文件
现在我想做的是:
javascript.source {
dev {
buildSrc 'some/path'
buildSrc 'some/other/path'
include '*.js'
exclude '*.min.js'
}
}
def srcs=['some/path','some/other/path']
javascript.source {
dev {
buildSrc srcs
include '*.js'
exclude '*.min.js'
}
}
然而,这种情况非常糟糕(一条关于从ArrayList转换为字符串的错误消息被弃用)
无论如何,我的问题是,“buildSrc”的重复在做什么?使用列表的等效语法是什么
提前谢谢 我不完全确定你的问题是否正确,但是。。。你试过这样的东西吗
def srcs = ['some/path', 'some/other/path']
javascript.source {
dev {
srcs.each { buildSrc it }
include '*.js'
exclude '*.min.js'
}
}
明亮的太棒了!那么在这种情况下,您将buildSrc称为什么?对我来说,它似乎不太像一个属性,因为否则它将是下面的一个列表,我可以设置列表值。我不能确定,因为我不知道您使用哪个特定的Gradle插件,但它似乎是一个方法(可能通过
missingMethod()
/invokeMethod()
实现为一个动态方法)。但这并不重要。如果它与字符串一起工作,您可以在一个迭代中调用它,一个接一个地提供字符串列表。