Через бродячую команду mvn

Я работаю над написанием vagrantfile для автоматизации локальной настройки. Через vagrant я создаю образ докера для своего приложения и запускаю его внутри vm. Все находится под одной командой, то есть vagrant up Но одну вещь я должен сделать вручную, то есть создать файл jar для своего приложения с помощью mvn clean package.

Мне интересно, есть ли способ запустить команду mvn из vagrantfile, чтобы, когда я выпускаю vagrant up, он собирал JAR и выполнял остальную часть работы.


person Sam    schedule 12.05.2016    source источник
comment
Вероятно, вы могли бы решить эту проблему с помощью [vagrant provisioning]( vagrantup.com/docs/provisioning ). Возможно, вам подойдет шелл-провайдер.   -  person Patrick    schedule 12.05.2016


Ответы (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.

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

person Frederic Henri    schedule 12.05.2016