2017-03-28 2 views
0

Gibt es einen Befehl oder Mechanismus, der alle untergeordneten pom.xml Dateien bearbeiten kann, so dass das übergeordnete relativePath-Tag für alle untergeordneten Module bearbeitet oder eingefügt wird?Gibt es eine Möglichkeit, relativer Elternpfad mit mvn zu bearbeiten

Grundsätzlich habe ich ein Aggregat pom.xml, und ein separates Elternteil pom.xml. Der Aggregator sammelt eine Reihe von unabhängigen Git-Submodulen, die unabhängig voneinander veröffentlicht werden, die nicht über den Aggregator oder den relativen Speicherort des übergeordneten Elements informiert sind, und ich möchte eine Möglichkeit, die erforderlichen Änderungen automatisch so anzuwenden, dass sie dies tun.

aggregator/ 
    - pom.xml 
    - @parent/ 
     - pom.xml 
    - @module1/ 
     - pom.xml 

Die Module verweisen auf die freigegebenen Versionen des übergeordneten, aber ich will alles Umschalten auf -snapshot (versions:update-child-modules behandelt dies gut), und am relativePath der Mutter die Module zu zeigen.

Momentan bearbeite ich die Dateien, um <relativePath>../parent</relativePath> in jedem Elternteil einzufügen.

Der Aggregator ist optional für die Projekte, da es lange nach der Tatsache kommt, so kann ich nicht wirklich die Hand bearbeiten Änderungen an dem Modul pom.xmls. Deshalb möchte ich einen dynamischen Mechanismus für Leute, die den Aggregator benutzen wollen.

Es mag sein, dass ich auf einen XML-Parser zurückgreifen muss, aber da ich auf halbem Weg bin, ohne das zu tun, wäre es schön, wenn es vermieden werden könnte.

+0

Sie haben also eine Struktur, die Ihre Pom repräsentieren, die nicht von Ihnen Verzeichnisstruktur dargestellt wird. Außerdem verstehe ich den Teil über Ihren Aggregator nicht? Wenn Sie einen Elternteil für alle Kinder haben, dann fügen Sie diesen Elternteil in den Stamm Ihrer Struktur ein, der das Leben einfacher macht ... – khmarbaise

+0

Die Module und der Elternteil existieren als eigenständige unabhängige Repos, die unabhängig voneinander veröffentlicht werden. Der Aggregator ist getrennt für eine bequeme Art, die ganze Welt zu sehen. – idij

+0

Ich habe die Frage bearbeitet, um dies zu klären. – idij

Antwort

0

Beantwortung meiner Frage:

Nein, es scheint kein Weg, um mvn verwenden.

Ich endete mit python, um die fraglichen XML-Knoten zu finden, und dann in-line Änderungen an den pom.xml Dateien vorzunehmen.

Verwandte Themen