2014-11-17 3 views
1

У меня есть многопроектная градиентная сборка, которая строит файл войны в каждом из подпроектов, когда я запускаю «войну град».Gradle - создайте тон всех подпроектов

Теперь я хочу создать задачу dist или tar в корневом проекте, который добавляет все военные файлы в tar.

Как выполнить задачу, которая зависит от конкретных задач подпроектов?

Я пробовал это, но военные задания не запускаются.

task explodedDist() { 
    dependsOn tasks.withType(War) 
    println "Finish" 
} 

Это работает, однако, я предпочел бы не иметь явно перечислить имена всех подпроектов в корневой задаче.

task explodedDist() { 
    dependsOn ':first:war' 
    dependsOn ':second:war' 

    println "Finish" 
} 

Есть ли лучший способ использования «подпроектов» или тому подобного?

Я по существу строю все подпроекты, а затем деактивирует их как dist. Похоже, это должно быть довольно распространенным явлением. Каков правильный способ сделать это?

+0

Важно понимать, что эти «println' происходят, когда сценарий оценивается (этап конфигурации), а не когда задача выполняется (этап выполнения). Чтобы добиться последнего, 'println' нужно будет обернуть с помощью' doLast {...} '. –

ответ

1
task dist(type: Tar) { 
    from { subprojects.war } 
} 
Смежные вопросы