Через бродячий запуск команды mvn
Я работаю над написанием vagrantfile для автоматизации локальной настройки. Через vagrant я создаю образ докера для своего приложения и запускаю его внутри vm. Все под одной командой т.е. vagrant up
Но одна вещь, которую я должен сделать вручную, т.е. создание файла JAR для моего приложения с помощью mvn clean package
,
Мне интересно, есть ли способ запустить команду mvn из vagrantfile, чтобы, когда я выдаю vagrant up
, он должен построить JAR и сделать всю остальную работу.
1 ответ
Как отмечает @Patrick, подготовка оболочки хороша - я лично использую для gradle, но то же самое можно сделать для maven. Вот как я называю свой сценарий
config.vm.provision "shell", path: "script/run-test.sh", privileged: false, run: 'always'
path
: путь к моему сценарию оболочки из каталога проектаprivileged
: если не задано, root будет запускать скрипт, если maven установлен для вашего бродячего пользователя, убедитесь, что для него установлено значение false, иначе вы увидите проблемуrun: 'always'
: это мой вариант использования (до вас, чтобы выбрать, если это имеет смысл для вас), скрипт всегда будет запускаться при запускеvagrant up
сценарий оболочки будет что-то вроде
#!/bin/bash
if [ -d "/home/vagrant/test" ];then
cd /home/vagrant/test && git pull
cd /home/vagrant/test && maven compile
cd /home/vagrant/test && maven deploy
.....
else
git clone <your project> /home/vagrant/test
fi
Это пример, в основном, когда я впервые создаю экземпляр, он клонирует git-репозиторий, а затем извлекает из последних файлов git и запускает команду maven.
Опять же, это простой пример, используйте его для собственных нужд