2016-05-12 10 views
1

Ich arbeite am Schreiben vagrantfile für die Automatisierung von lokalen Setup. Durch vagrant, ich erstelle docker image für meine app und läuft es in vm. Alles ist unter einem Befehl, d. H. vagrant up Aber eine Sache, die ich manuell zu tun, d. H. Erstellen von JAR-Datei für meine App mit mvn clean package.Durch Landstreicher running mvn Befehl

Ich frage mich, gibt es eine Möglichkeit, mvn Befehl von vagrantfile ausführen, so dass, wenn ich vagrant up, sollte es die JAR bauen und den Rest der Arbeit tun.

+1

Sie könnten wahrscheinlich dieses Problem lösen, indem [vagrant Provisioning] mit (https://www.vagrantup.com/docs/provisioning/). Vielleicht ist der Shell-Provisioner für Sie geeignet. – Patrick

Antwort

2

wie @Patrick erwähnt, die Shell-Provisioning ist eine gute Passform - ich persönlich für Gradle verwenden, aber das gleiche kann für Maven getan werden. Hier ist, wie nenne ich mein Skript

config.vm.provision "shell", path: "script/run-test.sh", privileged: false, run: 'always' 
  • path: ist der Weg für mein Shell-Skript aus dem Projektverzeichnis
  • privileged: wenn nicht gesetzt, root wird das Skript ausführen, wenn Maven für installiert ist Ihre vagrant user, stellen Sie sicher, es auf false setzen sonst sehen Sie Problem
  • run: 'always': das ist mein Anwendungsfall (bis zu wählen, wenn es für Sie Sinn macht), wird das Skript immer ausgeführt, wenn ich vagrant up
  • ausführen

das Shell-Skript so etwas wie

#!/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 

Dies ist ein Beispiel, im Grunde erstes Mal, dass ich eine Instanz erstellt wird es ein Git-Repo-Klon wird - dann wird es von git neuesten Dateien ziehen und Ihre Maven Befehl ausführen.

Auch dies ist ein einfaches Beispiel, verwenden Sie es für Ihren eigenen Bedarf

+0

Danke Henri für eine klare Erklärung. – Sam

Verwandte Themen