使用 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()
}

这将成功打印出依赖项中涉及的文件(或解压缩它们,根据我的情况需要)。