我暂时没有对Gradle做过任何事情,所以我似乎忘记了配置解析的工作原理。
我正在尝试使用gretty插件(而不是核心,不推荐使用的jetty),但我似乎无法创建自定义配置。
我把它简化为一个非常简短的简单脚本(使用Gradle 3.4):
buildscript {
repositories {
maven {
url 'https://plugins.gradle.org/m2/'
}
}
dependencies {
classpath 'org.akhikhl.gretty:gretty:1.4.0'
}
}
plugins {
id 'org.akhikhl.gretty' version '1.4.0'
}
configurations {
fooTest
}
configurations.fooTest.each {
println it.toString()
}
似乎不喜欢我在fooTest
配置上进行迭代。
假设我需要知道该配置的依赖关系(我从上面的代码中剥离了该部分)
我在这里做错了什么?
上面的脚本给了我这个:
org.gradle.api.InvalidUserDataException: Cannot change strategy of configuration ':fooTest' after it has been resolved.
答案 0 :(得分:0)
这里的关键点是我需要一个未解析的配置来循环。不可否认,这些信息在最初的描述中被忽略了,因为我不知道它是关键信息。我们需要遍历依赖项中的文件,并将它们复制/解压缩到某些位置。
但是,我们无法通过已解析的配置执行此操作。也就是说,我们可以将配置复制到一个未解析的配置中,然后循环遍历:
configurations.fooTest.copy().each {
println it.toString()
}
这将成功打印出依赖项中涉及的文件(或根据我的需要解压缩它们)。