Мне нравится задание 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, чтобы сэкономить место на диске.Есть ли способ сделать это?