1

我正在尝试编写一个插件来将所有依赖项(解压缩)填充到同一个 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的解决方案)

4

1 回答 1

1

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

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

打印所有配置怎么样?

我将如何解决以下问题?(得到一个无法更改的配置,它没有解决异常

..
project.configurations.include.each {println it}
..
于 2012-04-18T23:27:09.690 回答