0
首先,這是我第一次進入Gradle/Groovy(使用Gradle 1.10)。我正在建立一個多項目環境,我在一個項目中創建一個jar工件,然後想要在另一個項目中定義一個Exec任務,這個項目取決於創建的jar。我將其設置是這樣的:如何正確訪問Gradle配置對象
// 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
它失敗:
> Could not find method getAt() for arguments [0] on configuration ':loaderJar'.
在我foo
任務,我只是測試,看看如何訪問罐子。所以問題是,爲什麼最後一個println會失敗?如果一個Configuration對象是一個Collection/Iterable,那麼當然我應該能夠索引它呢?
謝謝@peter。正如你所指出的那樣,我正在研究'ConfigurationContainer'的API(它確實擴展了'Collection'),而不是'Configuration'。 –
謝謝@Peter! –