Через бродячий запуск команды 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.

Опять же, это простой пример, используйте его для собственных нужд

Другие вопросы по тегам