使用 gretty 插件更改配置?
Changing configuration with the gretty plugin?
我已经有一段时间没有对 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.
这里的关键点是我需要一个未解析的配置来循环。不可否认,最初的描述中忽略了此信息,因为我不知道它是关键信息。我们需要遍历依赖项中的文件并将它们 copy/unzip 放到特定位置。
但是,我们无法使用已解析的配置来做到这一点。也就是说,我们可以将配置复制到一个未解析的配置中,然后循环遍历它:
configurations.fooTest.copy().each {
println it.toString()
}
这将成功打印出依赖项中涉及的文件(或解压缩它们,根据我的情况需要)。
我已经有一段时间没有对 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.
这里的关键点是我需要一个未解析的配置来循环。不可否认,最初的描述中忽略了此信息,因为我不知道它是关键信息。我们需要遍历依赖项中的文件并将它们 copy/unzip 放到特定位置。
但是,我们无法使用已解析的配置来做到这一点。也就是说,我们可以将配置复制到一个未解析的配置中,然后循环遍历它:
configurations.fooTest.copy().each {
println it.toString()
}
这将成功打印出依赖项中涉及的文件(或解压缩它们,根据我的情况需要)。