我已经有一段时间没有使用Gradle做任何事情了,所以我似乎忘记了配置解析是如何工作的。
我正在尝试使用gretty插件(而不是core,已弃用的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.发布于 2017-03-08 07:17:09
这里的关键点是我需要一个未解析的配置来循环。无可否认,这个信息在最初的描述中被忽略了,因为我不知道它是关键信息。我们需要遍历依赖项中的文件,并将其复制/解压缩到特定位置。
但是,对于已解析的配置,我们无法做到这一点。也就是说,我们可以将配置复制到一个未解析的配置中,并在其上循环:
configurations.fooTest.copy().each {
println it.toString()
}这将成功地打印出依赖项中涉及的文件(或者根据我的案例需要将它们解压缩)。
https://stackoverflow.com/questions/42654050
复制相似问题