2017-04-22 1 views
0

Ich habe zwei Server für meine Java-Anwendung und ich verwende Jenkins, um meinen Code auf diesen Servern bereitzustellen. Die Anwendung ist die gleiche, aber aufgrund der Art der Arbeit, die wir tun, benötigen wir verschiedene Versionen der gleichen benutzerdefinierten Gläser auf jedem Server.Bereitstellen von zwei verschiedenen Versionen der gleichen JARS über Jenkings auf verschiedenen Servern

1: Ich habe versucht, Umgebungsvariablen zu setzen und versuchte Artefakt und Gruppe-IDs von denen, in pom.xml zu bekommen, aber wir können nicht Umgebungsvariablen in pom.xml

2 zugreifen: Ich habe versucht, zu ändern ihre Namen und importieren beide Gläser, aber das ist verrückt, einer von ihnen wird ignoriert und beide Server verwenden nur eine Version.

Ich habe schon lange damit zu kämpfen, die einzige mögliche Lösung, die mir in den Sinn kommt, ist, dass ich zwei verschiedene Git-Repositories erstellen und verschiedene jenkin-Jobs für jeden Server machen.

Kann mir jemand helfen, herauszufinden, wie kann ich verschiedene Versionen auf verschiedenen Servern importieren, das würde eine Menge bedeuten. Danke im Voraus.

+0

Sie können zwei Zweige für den Repo und verschiedene Jenkins Jobs für beide Zweige haben. Jeder Jenkins-Job wird den jeweiligen Zweig ziehen und einsetzen. Dies sieht praktikable Lösung aus – Abhilash

+0

ja, das macht Sinn, aber ist nicht eine Möglichkeit, ich kann es nur mit dem Master-Zweig, wo alle Zweige zusammenführen tun. Ich muss auf meine Abhängigkeiten achten und sie jedes Mal überprüfen, wenn ich sie drücke. –

+0

Ist dies eine WAR- oder EAR-Bereitstellung? –

Antwort

2

Wenn ich Sie richtig bekommen,

different versions of some custom jars 

sind andere Version von Ihnen Abhängigkeiten. Dies kann leicht unter Verwendung von Maven-Profilen erreicht werden. Ihre pom.xml aussehen würde similair auf diese (XML auf ein Minimum vereinfacht.

<project> 
    <!-- Basic info like model, artifact, group etc. --> 
    <dependencies> 
     <!-- Your usual deps as you are used to --> 
    </dependencies> 
    <profiles> 
    <profile> 
     <id>profile1</id> 
     <dependencies> 
       <!-- Extra deps for this profile --> 
     </dependencies> 
    </profile> 
    <profile> 
     <id>profile2</id> 
     <dependencies> 
       <!-- Extra deps for this profile --> 
     </dependencies> 
    </profile> 
    </profiles> 
</project> 

IDEs häufig Art und Weise bietet Profil einzustellen, so Devs sollte nicht Problem. Von jenkins, werden beim Bau von der Kommandozeile würden Sie sein Befehl mit bestimmten Profil aufrufen. Sie separate Aufträge haben oder Sie können Ihre Arbeit mit Parametern erstellen.

mvn install -P profile1 

Alternativ kann Profil von enviroment variable aktiviert werden. Problem sein kann, dass diese Variable während der Kompilierung availble sein muss.

Eine andere Möglichkeit wäre, Ihren Code für verschiedene Kunden zu verzweigen, wie Abhilas im Kommentar erwähnt.

Verwandte Themen