Freigeben mehrerer Maven-Artefakte bei Verwendung von verschachtelten Git-Submodulen

8

Ich habe schon eine Weile gesucht und konnte keine funktionierende Lösung oder Anleitungen / Tutorials für die Freigabe von Maven Modulen finden, wenn ich verschachtelte Git Submodule benutze.

Wir haben eine komplexe Struktur von öffentlichen und privaten Projekten, die eine bestimmte Reihenfolge erfordern, um erfolgreich zu bauen. Unser Ziel ist es, eine Maven-Veröffentlichung durchzuführen, um mehrere Maven-Artefakte in einem einzigen Schritt zu markieren und zu implementieren.

Hier ist das vereinfachte Maven Projekt / Module und die Git Repository Struktur:

%Vor%

Die aktuelle Struktur ermöglicht es Maven, Projekte / Module unabhängig voneinander zu erstellen und zu implementieren.

Bei der Freigabe von public-module (aus dem Verzeichnis parent-public / parent-private / public-modul ) funktioniert maven-release-plugin gut (das Git-Repository wurde markiert und das Release-Artefakt wurde bereitgestellt) ).

Wenn parent-private freigegeben wird, erstellt maven-release-plugin die Freigabe, bevor sie beim Ziel -Auschecken fehlschlägt (dieses Problem wird besprochen. hier , aber Lösung funktioniert nicht in meinem Kontext und nicht genug Reputation zu kommentieren).

Hier ist die aktuelle maven-release-plugin -Konfiguration:

%Vor%

Gibt es eine elegantere Möglichkeit, Maven-Module und Git-Repositories zu organisieren, um mehrere Maven-Artefakte freizusetzen? Oder hat jemand eine Lösung gefunden, rekursive Git-Submodule während des Checkouts kurz vor der Bereitstellung von Artefakten zu klonen?

    
almeidap 14.11.2012, 12:12
quelle

1 Antwort

5

Die Antwort auf diese Frage wird die anfängliche Frage nicht erfüllen, aber das Maven Release-Plugin ist nicht intelligent genug, um Git-Submodul-Grenzen zu verstehen. Ich denke, was Sie suchen, ist die Fähigkeit für das Maven Release-Plugin zu erkennen, dass ein Verzeichnis auf ein Submodul verweist und für dieses Release-Plugin automatisch über Grenzen hinweg zu markieren? Das wird nicht passieren, und ich glaube nicht, dass es zu diesem Zeitpunkt irgendjemandes Plan ist.

Was ich immer für Maven-Benutzer empfehle, die Git benutzen, ist niemals die Grenzen eines Multi-Modul-Projekts zu überschreiten, das das Release-Plugin über Submodule verwenden muss. Halte es auf ein einzelnes Repository beschränkt.

Auch dies ist keine gute Antwort, aber nachdem wir das Maven Release Plugin seit vielen Jahren verwenden, ist es auch wahr, dass es kein großartiges Plugin ist: - (

    
Tim O'Brien 26.12.2012 18:54
quelle