Плагин Gradle для приложения: установка бинарных артефактов в глобальный каталог - PullRequest
0 голосов
/ 14 октября 2018

Мне нравится задание gradle application plugin installDist.Он создает папки примерно так:

a-project/build/install/a/bin/a.bat
a-project/build/install/a/bin/a.sh
a-project/build/install/a/lib/a-1.0.0.jar
a-project/build/install/a/lib/a-dep1-1.2.3.jar
a-project/build/install/a/lib/a-dep2-4.5.6.jar
b-project/build/install/a/bin/b.bat    
b-project/build/install/a/bin/b.sh
b-project/build/install/a/lib/b-1.0.0.jar

Но для реальной установки мне все еще нужно добавить данный каталог в мой PATH.Теперь вместо этого мне нужен один глобальный каталог, в который попадает каждый скрипт (предположим, что у каждого проекта есть уникальное имя).Я хотел бы добавить этот каталог в PATH каждого из моих компьютеров, клонировать свои репозитории из github и просто выполнить ./gradlew <task>, чтобы «установить» каждую программу на мой локальный терминал.Поэтому первые два проекта и выполнение этого <task> должны привести к чему-то вроде следующего:

~/mydir/a.bat
~/mydir/a.sh
~/mydir/a-lib/a-1.0.0.jar
~/mydir/a-lib/a-dep1-1.2.3.jar
~/mydir/a-lib/a-dep2-4.5.6.jar
~/mydir/b.bat
~/mydir/b.sh
~/mydir/b-lib/b-1.0.0.jar

Как я могу добиться такого поведения или что-то подобное?Встроенные задачи предпочтительнее, но приемлема конфигурация на основе репозитория.Любая необходимая конфигурация на самой машине установки не является.

Дополнительный вопрос: еще лучше было бы автоматически разделить зависимости maven в одном глобальном каталоге lib, чтобы сэкономить место на диске.Есть ли способ сделать это?

...