0

我有一段时间没有用 Gradle 做任何事情了,所以我似乎忘记了配置解析是如何工作的。

我正在尝试使用 gretty 插件(而不是核心,已弃用的码头),但我似乎无法创建自定义配置。

我把它归结为一个非常简短的脚本(使用 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.
4

1 回答 1

0

这里的关键点是我需要一个未解决的配置来循环。诚然,这些信息在最初的描述中被忽略了,因为我不知道它是关键信息。我们需要遍历依赖项中的文件并将它们复制/解压缩到特定位置。

但是,我们无法通过已解析的配置来做到这一点。也就是说,我们可以将配置复制到一个未解析的配置中,然后对其进行循环:

configurations.fooTest.copy().each {
    println it.toString()
}

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

于 2017-03-07T23:17:09.010 回答