Anforderung: Laden Sie eine zusätzliche Datei (eine Textformat-Versionshinweisdatei) zusammen mit jar/war zu nexus hoch.Maven deploy "Release Note" als Artefakt
Mögliche Lösung: Verwenden Sie maven deploy plugin
wie folgt:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<packaging>RELEASENOTE.MD</packaging>
<generatePom>false</generatePom>
<url>${project.distributionManagement.repository.url}</url>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
<file>RELEASENOTE.MD</file>
</configuration>
</execution>
</executions>
</plugin>
Probleme:
- Datei ist optional. Die Datei sollte nur bereitgestellt werden, wenn sie vorhanden ist. Die obige Lösung gibt einen Fehler aus, wenn die Datei nicht vorhanden ist.
[ERROR] Fehler Ziel org.apache.maven.plugins auszuführen: Maven-deploy-Plugin: 2,4: deploy-Datei (Standard) auf Projekt ... \ RELEASENOTE.MD nicht gefunden .
- eine Option benötigen Dateinamen von regex (Beispiel:
*RELEASENOTE.MD
) angeben.maven deploy plugin
akzeptiert Regex nicht.
[ERROR] Fehler Ziel org.apache.maven.plugins auszuführen: Maven-deploy-Plugin: 2,4: deploy-Datei (Standard) auf Projekt ... * RELEASENOTE.MD nicht gefunden .
Wie können diese beiden Probleme umgangen werden?
Warum nicht einfach in Ihrer Versionskontrolle in diesen Artefakt Überprüfung durch einen Wrapper-Shell-Build-Skript umgegangen werden?oder hinzufügen während des Builds über Build-Helper-Maven-Plugin? – khmarbaise
Ja, es wird in die Versionskontrolle eingecheckt. Aber es ist optional. Nicht alle Gläser haben eine Release-Note. Daher sollte das Plugin nicht versuchen, die Datei bereitzustellen, wenn sie nicht vorhanden ist. – gammay
Als die entsprechenden Projekte, die das Jar erstellen, sollten die Versionshinweise an das Projekt und nicht das Deploy-Plugin angehängt werden. BTW: Warum sollten die Release Notes in das Repository und nicht auf eine generierte Site gestellt werden? – khmarbaise