2010-03-25 11 views
15

Ich habe ein Repository mit Snapshot-Artefakten mit Zeitstempeln.Maven: Wie man Versammlung mit Schnappschussartefakten ohne Zeitstempeldateinamen verursacht?

Ich möchte eine Assembly erstellen, die die Abhängigkeiten enthält. Das funktioniert gut. Die Artefaktnamen enthalten jedoch den Zeitstempel. Also frage ich mich, wie man den Timestamp nur aus dem Dateinamen für die Assembly entfernt.

habe ich verwendet, um dieses dependencySet:

<outputFileNameMapping>${artifact.artifactId}-${artifact.version}.${artifact.extension}</outputFileNameMapping> 

Aber Version Nähte bereits den Zeitstempel enthalten. Also gibt es eine Chance, eine 1.1.1-SNAPSHOT statt 1.1.1-20100323.071348-182 zu bekommen?

Ich benutze Version 2.2-Beta-4 von Maven-Assembly-Plugin.

+0

Welche Versionen von Maven und des Assembly-Plugins verwenden Sie? –

+0

Ich benutze Version 2.2-Beta-4 von Maven-Assembly-Plugin. (Ich habe diese Information zu meiner Frage hinzugefügt) – marabol

+0

Die angenommene Antwort funktioniert perfekt mit Maven 3 und Version 2.2.1 des Assembly-Plugins. –

Antwort

24

Könnten Sie versuchen, die folgenden für die outputFileNameMapping:

${artifactId}-${baseVersion}.${extension} 

Nach Themen wie MASSEMBLY-67, MASSEMBLY-91:

Mit ${baseVersion} für Fälle, in denen Sie die -snapshot Benennung erhalten wollen, das Plugin behält die Möglichkeit, ${version} für die Benennung der Zeitstempel-Baunummer zu verwenden, was für die Beschreibung der genauen Bibliotheksversion nützlich ist, die in der Baugruppe enthalten ist.

Update: Nach Rückmeldung von der OP, die genauen Syntax ist (nicht ganz sicher war):

${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension} 
+0

Vielen Dank. Nur eine kleine Änderung und es funktioniert gut: \t \t \t $ {artifact.artifactId} - $ {artifact.baseVersion} $ {artifact.extension} marabol

+0

@marabol Sie sind willkommen.. Froh, dass es funktioniert. Ich war nicht ganz sicher für die Syntax der Eigenschaften, aber ich dachte, Sie würden es herausfinden :) –

+0

Sie können auch den Klassifizierer hinzufügen: $ {artefact.artifactId} - $ {artefact.baseVersion} $ {dashClassifier?}. $ { Artefakt.Extension} – Rob

2

ich ein ähnliches Problem konfrontiert, wenn versucht, ein Bündel mit dem bauen Assembly-Plugin, das einen Ordner mit der Versionsnummer enthielt (Ich verpacke WSDLs und XSDs).

Die Abhilfe fand ich ganz einfach, ich die aktuelle Versionsnummer in einer Eigenschaft setzen (zB 1.0), wodurch es in der bundle.xml Datei für die Montage-Plugin zur Verfügung, und stellen Sie die auf der pom Version:

Auf diese Weise wird der Inhalt meines Pakets nicht durch den SNAPSHOT-Marker beeinflusst, insbesondere wird es bei der Veröffentlichung nicht verändert.