Frage

Ich habe ein riesiges Projekt, das rund 200 Gläser enthält. Wenn ich Release Maven vorbereite ? und sie ausschließen?

Ich möchte keine Gläser (mehr als 200) einzeln stützen.

Zum Beispiel: Ich möchte Relase für Eltern machen, aber ich möchte JAR4 nicht stützen, das nicht geändert wurde

-Parent

---------Module1

----------------jar1*

----------------jar2*

---------Module2

----------------jar3*

----------------jar4   
War es hilfreich?

Lösung

Zum Beispiel: Ich möchte Relase für Eltern machen, aber ich möchte JAR4 nicht stützen, das nicht geändert wurde

Die Syntax dafür ist

mvn -pl Module1,Module2/jar3 <your maven goals here>

(In diesem Fall möchten Sie das gesamte Modul1 und Just JAR3 von Module2 erstellen.)

Jetzt ist der knifflige Teil, wie der Parameter nach -PL zusammengebaut wird. Ich bin mir ziemlich sicher, dass es keinen Maven -Weg gibt, dies zu tun. Sie müssen also wahrscheinlich ein Shell -Skript (oder Ruby, Groovy, Perl Python usw. Skript) schreiben, das das für Sie tut.

Grundsätzlich muss Ihr Skript tun:

  • Suchen Sie nach allen Maven -Projektverzeichnissen (Verzeichnisse, die ein pom.xml enthalten) im angegebenen Verzeichnis und sortieren Sie sie umgekehrt (tiefste Pfade zuerst).
  • Suchen Sie alle geänderten Dateien in der gesamten Hierarchie (mit SVN, CVS oder allen Aufrufen)
  • Zeichnen Sie jede geänderte Datei in eines der Projekte (durch Vergleichen von Pfaden) alle übereinstimmenden Projekte in einer Liste ab
  • Optimieren Sie nun die Liste, indem Sie eine Eltern/Kinderoptimierung durchführen (wenn alle Kinder eines bestimmten Elternteils vorhanden sind, entfernen Sie die Kinder und fügen Sie den Elternteil hinzu). Tun Sie dies wiederholt, bis Sie die Wurzelhierarchie erreichen.
  • Extrahieren Sie aus der verbleibenden Liste die relativen Pfade, schließen Sie sich ihnen mit einem Komma an und starten Sie Ihren Maven -Prozess mit diesem Wert für die -pl Parameter.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top