Таким образом, предполагая, что все ваши модули являются простыми java
модулями, все ваши модули будут иметь задачу jar
(типа Jar
), которая создает файл JAR соответствующего модуля. Каждая задача jar
будет выполняться, только если ее содержимое каким-либо образом изменилось (например, были скомпилированы новые файлы), благодаря функции инкрементальной сборки Gradle.
Вы можете просто добавить закрытие doLast
к каждой из этих задач, которое копирует созданный файл в ваш каталог, потому что закрытие будет выполнено только тогда и только тогда, когда задача была выполнена:
Пример для одной задачи:
jar {
doLast {
project.copy {
from archivePath
into 'path/to/my/location'
}
}
}
Если это работает для одного модуля, мы можем попробовать подход, аналогичный тому, что сделал @ lance-java:
allprojects { project ->
project.tasks.withType(Jar).all { jar ->
jar.doLast {
project.copy {
from jar.archivePath
into 'path/to/my/location'
}
}
}
}