I would have expected this to work:
apply plugin: "java"
repositories {
mavenCentral()
}
dependencies {
compile 'junit:junit:4.9'
}
task doIt {
dependsOn configurations.compile
doFirst {
assert configurations.compile.state ==
Configuration.State.RESOLVED
}
}
Instead it fails because the configuration is not resolved when the task
executes.
Using `dependsOn configurations.compile.buildDependencies` does not work
either, same problem.
I also tried `dependsOn configurations.compile.files`, which does
trigger a resolve but then explodes because it tries to find a task with
a name matching the absolute path of each dependency file.
I stumbled upon this when answering a forum question that lead to me
writing and trying the following:
task unpack(type: Copy, dependsOn: configurations.compile) { task ->
into "sdks"
assert configurations.compile.state == Configuration.State.UNRESOLVED
configurations.compile.incoming.afterResolve {
ResolvableDependencies incoming ->
incoming.files.each { File file ->
if (file.name.endsWith(".zip")) {
from (zipTree(file)) {
into file.name - ".zip"
}
}
}
}
}
(I also discovered http://issues.gradle.org/browse/GRADLE-2047 in the
process which is now fixed.)
--
Luke Daley
Principal Engineer, Gradleware
http://gradleware.com