10

Wir verwenden Jenkins zu bauen (Maven) & Artefakte bereitstellen (JAR-Dateien & * WAR * s) zu einem haus artifactory Server (beide Schnappschüsse und Veröffentlichungen).Jenkins: Bereitstellung von WAR-Dateien von artifactory

Für die Bereitstellung haben wir derzeit Jenkins-Jobs, die die WAR-Datei (aus einem Release-SCM-Tag) verpacken und in verschiedenen Umgebungen/Servern bereitstellen. Wir möchten die Paketphase überspringen, da es unnötig erscheint, sie erneut für eine freigegebene Version zu packen, da es nicht möglich ist, eine andere Kopie der WAR-Datei zu erhalten, selbst nach 1000 Versuchen.

Wir suchen nach einem Weg in Jenkins, um das Artefakt (Krieg) von Artifactory zu bekommen und es in einen Container zu bringen. Ich bin mir sicher, dass auch andere Leute sich dieser Situation hätten stellen müssen, aber dazu finde ich kein Online-Material.

Gibt es ein Jenkins-Plugin, das eine War-Datei von Artifactory (basierend auf einer Version) annimmt und sie in einem Remote-Container bereitstellt?

Wenn dies nicht der richtige Weg ist, was sind dann die Empfehlungen für andere Ansätze?

Dank

+0

etwas Nützliches gefunden: http://stackoverflow.com/a/7785290/1844874, wird es geben ein – Ranko

Antwort

1

Jeder Artefakt in Artifactory gespeichert wird eine eindeutige URL, die die Versionsnummer enthält. Es wird das Format

http://artifactory-server/repository-name/path-to-artifact/version/filename 

z.B.

(Je nachdem, wie Sie Ihre Verpackung machen, kann der Name der WAR-Datei auch die Versionsnummer enthalten).

Ihr Bereitstellungsauftrag kann also die Artifactory-URL erstellen und die Datei herunterladen. Je nachdem, wie Sie die Sicherheit in Artifactory eingerichtet haben, müssen Sie die Anforderung möglicherweise authentifizieren.

+0

versuchen Ja, das habe ich verstanden. Meine Frage hier ist, wie mache ich einen Deployment-Job in Jenkins, die die WAR-Datei von einer URL herunterladen? – Ranko

+0

Sie sagen nicht, welchen Webcontainer Sie verwenden; Maven hat eine eingebaute Tomcat-Implementierung, siehe http://www.mkyong.com/maven/how-to-deploy-maven-based-war-file-to-tomcat/ Ansonsten können Sie einfach einen Shell-Build-Schritt in Jenkins schreiben um die Bereitstellungsschritte durchzuführen. –

+0

Ich benutze Tomcat. Ermöglicht maven-tomcat-plugin die Bereitstellung eines War, der auf Artefakte gespeichert ist? Es macht Sinn, ein Shell-Skript zu schreiben, um den Krieg herunterzuladen und zu deployen, aber ich habe mich nur gefragt, ob dies bereits in irgendeinem jenkins oder maven-Plugin geschehen ist, von dem ich nichts weiß. – Ranko

2

Ich weiß nicht über ein Plugin, das eine Version # übernimmt und es implementiert, aber Sie können einen Jenkins-Job erstellen, um die letzte erfolgreiche Version in eine vorherige Umgebung zu implementieren (also z. B. von DEV -> QA kopieren).)

Um dies zu tun, würden Sie die Kopie-Artefakt-Plugin verwenden.

Hier ist eine einfache Durchlauf dieser Art von Einrichtung zu folgen:

http://www.lordofthejars.com/2012/09/deploying-jee-artifacts-with-jenkins.html