Zunächst habe ich irgendeine Art von Verständnis, dass die folgenden möglicherweise nicht die allgemein akzeptierte Möglichkeit, Dinge zu tun.Aktualisieren Sie eine Maven-Projektversion von Skript
Wir haben ein Maven 2-Projekt, das eine Versionsnummer hat, die etwa jede Woche während einer neuen Version aktualisiert werden sollte. Während dieses Prozesses habe ich versucht, all die Dinge zu eliminieren, an die man sich erinnern muss, und ich habe ein Bash-Skript erstellt, das den Prozess interaktiv behandelt.
Mein Problem besteht jedoch darin, die Pom-Version über die Befehlszeile zu aktualisieren. Ich kann das mit Sed machen, aber ich denke nicht, dass es sehr praktisch ist. Ich frage mich, ob es irgendein Maven-Plugin gibt, das in der Lage wäre, die pom.xml direkt von der Befehlszeile aus zu ändern. Die Version wird im Eigenschaftenbereich des Pom festgelegt. Wäre es möglich, ein Plugin zu schreiben, das die Eigenschaften ändern würde?
Vielen Dank im Voraus.
aktualisieren
Es scheint, dass mein Problem mit Projektversionen war als Eigenschaften definiert (die angewendet wurden, als Filterung), die jetzt ein bisschen dumm scheint.
Eine Sache, die ich noch auf der Suche nach einer Antwort bin, ist, wie man die Version eines bestimmten Projekts zuverlässig an die Befehlszeile bekommt. Zuvor hatte ich eine "ziemlich einzigartige" Eigenschaft, die ich mit grep
, aber jetzt das <version>
Element ist nicht einzigartig, da in Kind-Projekt gibt es mindestens zwei von diesen. Ich würde eine Art von XML-Parser benötigen, wenn Maven keine Lösungen hat, aber mein Ziel ist es, das Skript so unabhängig wie möglich zu machen.
Ich bin nicht sicher, ob ich eine neue Frage daraus hätte erstellen sollen, aber ich tat es nicht. Das Abrufen der Version hängt sehr eng mit dem Festlegen der Version zusammen.
Danke! Ich habe das Plugin selbst gefunden, aber irgendwie habe ich übersehen, dass das Plugin die pom.xml aktualisieren kann und nicht nur Abhängigkeiten und ähnliches anzeigt. Das Einstellen der Version funktioniert nicht, da die Version im Eltern-Pom als eine Eigenschaft definiert ist, die ich nicht erwähnen wollte. Allerdings habe ich festgestellt, dass es ein Ziel "update-properties" gibt, das den Trick machen könnte. – mkko
Scheinbar "update-properties" dient nur dazu, Abhängigkeiten zu aktualisieren und keine Werte zu setzen. "versions: set" ist die nächste Übereinstimmung, aber es scheint, dass es keine Möglichkeit gibt, die Version im Eltern-Pom auf diese Weise zu definieren - oder zumindest als Eigenschaft. – mkko
@mkko: 1. Sie müssen ** wirklich ** hart die Version in der Eltern POM und in den '' Elemente der untergeordneten Module, siehe [MNG-624] (http://jira.codehaus.org/browse) (MNG-624) für ausführliche Diskussionen zu diesem Thema 2. Abhängigkeiten sollten die eingebaute Eigenschaft '$ {project.version}' verwenden, es gibt keinen gültigen Grund, eine Eigenschaft für die Version zu verwenden. So funktioniert es mit Maven. 3. Und dann können Sie 'versions: set' verwenden (dies ist jedoch eine indirekte Folge, um die Dinge richtig zu machen). –