2017-03-07 64 views
0

我有一段时间没有用Gradle做过任何事情,所以看起来我忘记了配置解析的工作原理。使用gretty插件更改配置?

我想使用gretty插件(而不是核心,弃用jetty),但我似乎无法创建自定义配置。

我煮下来到(使用摇篮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

你希望通过执行'println it.toString() '看到什么? –

+0

我在依赖配置中使用'fooTest'(我忽略了,因为我得到的错误无论如何)。我不一定要打印依赖项,但我确实想要解压缩一些zip依赖项,这就是为什么我需要遍历它们。我只是想尽量缩小这个问题的范围。 – Depressio

回答

0

的关键点是在这里,我需要一个悬而未决的配置遍历。无可否认,这些信息在初始描述中被忽略,因为我不知道这些信息是关键信息。我们需要遍历依赖项中的文件并将它们复制/解压缩到某些位置。

但是,我们无法通过已解决的配置来实现。这就是说,我们可以在配置复制到一个未解决的一个,并遍历,与其:

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

这将成功地打印出参与依赖的文件(或解压缩他们,因为我的情况需要)。