如何在Gradle中创建包含项目jar和war的分发存档(zip)

rod*_*ion 6 gradle

我正在尝试创建一个Zip任务,该任务将为我的项目创建一个包含项目jar文件和war(以及可能由该assemble任务生成的其他构建工件)的分发包.

所以我尝试编写这个简单的脚本

task dist(dependsOn: 'assemble', type: Zip){
  into('lib'){
    from 'build/libs' //contains jar and war files
  }
  ... //other stuff
}
Run Code Online (Sandbox Code Playgroud)

任务dist取决于assemble因为它方便地包含创建jar和war文件的任务.

但是如果我尝试执行它,gradle会抱怨此错误消息:

Circular dependency between tasks. Cycle includes [task ':assemble', task ':dist'].
Run Code Online (Sandbox Code Playgroud)

我已经检查了任务规范assemble,并且清楚地写出了assemble任务自动dependsOn执行项目中的所有存档任务,这显然包括我的dist任务.似乎没有办法绕过它.

在gradle中这样做的正确方法是什么?如何制作依赖于assemble任务的zip 任务?我可以dist明确地依赖任务jarwar任务,但我认为这有点违反了封装.

我正在使用gradle-1.0-milestone-3.

提前致谢!

Ren*_*hke 12

这是一个完整的例子,将你的Zip依赖于jar和war任务:

task dist(type:Zip){
    from jar.outputs.files
    from war.outputs.files
}
Run Code Online (Sandbox Code Playgroud)