Groovy 如何正确访问Gradle配置对象
首先,这是我第一次尝试Gradle/Groovy(使用Gradle1.10)。我正在建立一个多项目环境,在这个环境中,我在一个项目中创建一个jar工件,然后在另一个项目中定义一个Exec任务,这取决于创建的jar。我正在设置如下内容:Groovy 如何正确访问Gradle配置对象,groovy,gradle,Groovy,Gradle,首先,这是我第一次尝试Gradle/Groovy(使用Gradle1.10)。我正在建立一个多项目环境,在这个环境中,我在一个项目中创建一个jar工件,然后在另一个项目中定义一个Exec任务,这取决于创建的jar。我正在设置如下内容: // This is from the jar building project jar { ... } configurations { loaderJar } dependencies { loaderJar files(jar.archivePa
// This is from the jar building project
jar {
...
}
configurations {
loaderJar
}
dependencies {
loaderJar files(jar.archivePath)
...
}
// From the project which consumes the built jar
configurations {
loaderJar
}
dependencies {
loaderJar project(path: ":gfxd-demo-loader", configuration: "loaderJar")
}
// This is my test task
task foo << {
configurations.loaderJar.each { println it }
println configurations.loaderJar.collect { it }[0]
// The following line breaks!!!
println configurations.loaderJar[0]
}
在我的
foo
任务中,我只是在测试如何访问jar。所以问题是,为什么最后一次打印失败了?如果一个配置对象是一个集合/Iterable,那么我当然应该能够索引到它中?Configuration
是-ajava.util.Iterable
,而不是java.util.Collection
。从文档中可以看出,getAt
方法(对应于[]
运算符)是在集合
上定义的,而不是在Iterable
上定义的。因此,您无法索引到配置中
谢谢@peter。我在看ConfigurationContainer
(它扩展了Collection
)的API,而不是Configuration
,正如您所指出的那样。
> Could not find method getAt() for arguments [0] on configuration ':loaderJar'.