Как создать архив распространения (zip), содержащий файлы jar проекта и войну в Gradle

Я пытаюсь создать задачу Zip, которая создала бы пакет распространения для моего проекта, содержащий файлы jar проекта и war (и, возможно, другие артефакты сборки, созданные задачей build ).

Итак, я попытался написать этот простой скрипт

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

Задача dist зависит от сборки , потому что она удобно включает задачи, которые создают файлы jar и war.

Но если я попытаюсь выполните это, gradle жалуется на следующее сообщение об ошибке:

Circular dependency between tasks. Cycle includes [task ':assemble', task ':dist'].

Я проверил спецификацию для задачи сборки , и четко написано, что задача сборка автоматически зависит от всех архивных задач в проекте, который, очевидно, включает мою задачу dist . И, похоже, нет никакого способа обойти это.

Каким будет правильный способ сделать это в gradle? Как сделать zip-задачу, зависящую от задачи сборки ? Я мог бы сделать задачу dist явно зависимой от задач jar и war , но я думаю, что это немного нарушает инкапсуляцию.

Я использую gradle-1.0-milestone-3.

Заранее спасибо!

6
задан rodion 30 July 2011 в 08:39
поделиться