как @Patrick упоминает, что предоставление оболочки является хорошей подгонкой - я лично использую для градации, но то же самое можно сделать для maven. Вот как я называю мой сценарий
config.vm.provision "shell", path: "script/run-test.sh", privileged: false, run: 'always'
path
: это путь для моего сценария оболочки из каталога проекта
privileged
: если не установлен, то корень будет запускать скрипт, если 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.
Опять же, это простой пример, использовать его для собственных нужд
Вы могли бы решить эту проблему с помощью [бродячую инициализацию] (https://www.vagrantup.com/docs/provisioning/). Возможно, устройство обеспечения оболочки подходит вам. – Patrick