访问Gradle插件任务中的项目配置 - >无法确定任务的依赖关系

时间:2012-04-18 23:04:50

标签: gradle

我正在尝试编写一个插件来将所有依赖项(解压缩)填充到同一个jar中。这就是我尝试过的:

apply plugin: CustomZipPlugin   
class CustomZipPlugin implements Plugin<Project>{
  void apply(Project project) {
    project.configurations.add('include');
    project.tasks.add(
      name:'customZipTask', type: Zip)
      {
        from {project.configurations.include.collect{zipTree(it)}}
      };    
  }
}
repositories{mavenCentral()}
dependencies{
  include 'net.sourceforge.cobertura:cobertura:1.9.4.1'
}

这会导致:无法确定任务的依赖关系':customZipTask'

我也尝试过:

..
from project.configurations.include.collect{zipTree(it)}
..

这导致:您无法更改未处于未解决状态的配置!

然而......直接在我的构建脚本(而不是构建脚本)中编写自定义任务有效..即:

task customZipTask(type: Zip){
  from {project.configurations.include.collect{zipTree(it)}}
}

有关如何在插件中实现此邮政编码的任何建议吗? (最好是非hacky解决方案)

1 个答案:

答案 0 :(得分:1)

啊哈!!我需要在zipTree前加上'project'来解决这个问题。上面列出的错误消息有点误导。

..
from project.configurations.include.collect{project.zipTree(it)}
..

打印所有配置怎么样?

我如何解决以下问题? (获取无法更改未解决的配置异常

..
project.configurations.include.each {println it}
..