Uberjar только с зависимостями - PullRequest
0 голосов
/ 06 сентября 2018

Я использую облачный поток данных Google для запуска задания Apache Beam с большим количеством зависимостей. Обычно, если я не уберу весь проект, поток данных откажется выполнять граф, потому что список зависимостей слишком длинный.

Есть ли способ поместить зависимости проекта в uberjar и оставить остальную часть моего потока данных снаружи? Я полагаю, поскольку зависимости довольно статичны, я мог бы сэкономить много времени на повторной настройке и повторной загрузке всего Uberjar, когда изменилась только пара классов в моем проекте.

1 Ответ

0 голосов
/ 06 сентября 2018

Вы можете создать определенную задачу Jar только с compile зависимостями, например

task uberJarDependencies(type: Jar) {
    baseName "dependencies"
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}

Тогда gradle uberJarDependencies выдаст следующую банку: build/libs/dependencies.jar

...