Wie stelle ich ein bereits installiertes Artefakt mit Maven bereit?

8

Geschichte

Ich weiß, dass der Befehl maven deploy den gesamten Lebenszyklus durchläuft. Mein Problem, dass es in meinem Fall zu viel Zeit braucht. Lassen Sie mich erklären:

  • Es gibt eine Anwendung, die auf einem Server und einem einzigen Eclipse RAP & amp; RCP Client
  • aufgebaut ist
  • Die Kommunikation wird durch geteilte API-Projekte definiert, die zusammen gebaut werden mit dem Server, sondern auch von den GUI-Projekten benötigt
  • Die GUI Projekte sind von Tycho erstellt, daher ist es unmöglich, sie zu erstellen beide in einem Build (in einem Reaktor, EDIT: , da die P2-Artefakte für RCP und RAP unterschiedlich sind)
  • Ich baue eine Version mit einem mehrstufigen Jenkins-Build. Um sicherzustellen, dass alles ist in Ordnung, ich zuerst eine saubere Installation für Server und die GUI-Variationen nacheinander, und dann stelle ich sie, wenn nichts ausfällt

Frage

Zweimal zu bauen kostet viel Zeit. Gibt es etwas wie " , stellen Sie einfach alle erstellten Artefakte so wie sie von meinem lokalen Repository in das POM-definierte Repository mit dem gesamten Lebenszyklus übergehen " ?

    
Gábor Lipták 07.03.2013, 21:01
quelle

2 Antworten

4

Wenn Sie das Artefakt bereits beim vorherigen Build haben, können Sie das berücksichtigen deploy: deploy-file , indem Sie dem Leitfaden zur Bereitstellung von JARs von Drittanbietern folgen zum entfernten Repository . Ich verwende dieses Ziel immer, um ein stabiles Artefakt im öffentlichen Remote-Repository des Entwicklers zu veröffentlichen, damit andere Teams es testen / verwenden können.

Ich hoffe, das kann helfen.

    
Charlee Chitsuk 08.03.2013 00:46
quelle
3

Ich denke nicht, dass es eine reine Maven-Lösung dafür gibt. Das Problem besteht darin, dass bei der Bereitstellung nur für die Bereitstellung nicht bekannt ist, welche Artefakte bereitgestellt werden sollen - AFAIK diese Informationen befinden sich nur im In-Memory-Maven-Modell und werden nicht im Zielordner beibehalten.

Das Problem kann mit einem Maven-Repository-Manager gelöst werden, der das Staging unterstützt, wie das (kommerzielle) Nexus Pro. Dann würde Ihr Build sofort in ein Staging-Repository implementiert und die Artefakte nur dann an das (Haupt-) Repository heraufstufen, wenn alles erfolgreich war.

    
oberlies 08.03.2013 08:04
quelle