Wie kann ich automatisch die Version in der pom.xml ändern.

Oneixee5

Top Contributor
Ich bin für mehrere Anwendungen verantwortlich, welche in eine K8n-Umgebung deployt werden. Auf irgendeine Art und Weise muss sich doch die Version in der pom automatisch ändern lassen. Wenn ich eine Umgebungsvariable oder Property verwende, dann erhalte ich eine Warnung ...

Klar kann ich: mvn release:update-versions aufrufen, aber wozu, das kann doch gleich hier passieren. -> maven deploy -> dann version + 1

Eigentlich benötige ich nur einen Timestamp oder einen Zähler, damit K8n die Änderungen ausrollen kann. Die Version ist mir völlig egal. Weiterhin hat sowieso jede Datei eine Version im VCS. In den Anwendungen gibt es immer eine Datei mit der fachlichen Version (welche über das buildnumber-maven-plugin erzeugt wird) und einer Auflistung der aktuellen Änderungen. Die zusätzlichen Dateien werden automatisch erstellt und vom Jenkins komitted. Innerhalb eines Maven-Laufes sind doch alle Möglichkeiten für eine automatische Versionierung vorhanden.

Ich finde diese Restriktion völlig sinnlos.

XML:
    <groupId>...</groupId>
    <artifactId>...</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>...</name>

Code:
[WARNING]
[WARNING] Some problems were encountered while building the effective model for ...
[WARNING] 'version' contains an expression but should be a constant. @ ...:${version}, ...\pom.xml, line 14, column 14
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
 
Wenn Du die Property ${version} verwenden möchtest... dann solltest Du ${revision} verwenden ... Dann sollte auch das flatten-maven-plugin korrekt konfiguriert sein... Dann kannst Du per Property die Version ändern.... z.B. dann per CLI:
Bash:
mvn -Drevision=1.2.3 deploy
Voraussetzung ist, dass die Maven Version mindestens größer 3.5.0 ist
Siehe auch: https://maven.apache.org/guides/mini/guide-maven-ci-friendly.html
Was Du dann am Ende in die Property revision packst ist schlicht egal... man könnte auch den Git-Hash nutzen... via https://github.com/git-commit-id/git-commit-id-maven-plugin
 

Zurück
Oben