In meinem Projekt erstelle ich viele Assemblys (4-5) und sie werden auf Ziel ausgegeben.1 / 2 dieser Assemblies nehmen nicht ihren endgültigen Namen (oder Assembly-ID), sondern gemäß dem Format artifactID-version .jar..Das ist sehr verwirrend Warum ist das so?
Extrakte aus meiner pom.xml -
%Vor%Ziehen Sie Lyle auf die Fragenebene heraus, um Sichtbarkeit zu gewährleisten.
Während die vorherige Antwort funktioniert Lyle weist darauf hin:
Wenn ich das richtig verstehe, scheint es eine etwas invasive Lösung für einen Fehler im Assembly-Plugin zu sein. Versuchen Sie stattdessen, false in der Konfiguration festzulegen. Siehe: MASSEMBLY-352
Für Artefakte, die nicht mit der Repository-Distribution verbunden sind, ist dies eine gute Lösung und hat für mich gut funktioniert.
%Vor%Wenn Sie die Assembly ausführen, sehen Sie etwas wie diese Ausgabe von Maven?:
%Vor% Dies passiert, weil alle Ihre Assemblies <appendAssemblyId>false</appendAssemblyId>
angeben und kein Klassifizierer angegeben ist. Der Classifier ist in der 2.2-Beta-4 Version veraltet und wird daher ignoriert, dies ist ein Bug / Feature im Plugin.
Als Ergebnis wird Maven eine der Assemblies immer zum "Haupt" -Offakt für Jar-Packaging machen, und Sie sehen es nicht in Ihrem Target-Assembly-Verzeichnis.
Um dies zu umgehen, können Sie angeben, dass Ihr Projekt pom
packen hat, und dann die Ziele für den Jar-Lebenszyklus an den Pom binden.
Um die Ziele process-resources
und compile
zu aktivieren, würden Sie die Verpackung in pom
ändern, die folgende Konfiguration zu Ihrem Pom hinzufügen und die Standardlebenszyklusziele ausführen. Zum Beispiel mvn package
oder mvn install
.
Die vollständige Liste der Ziele, die an den Jar-Lebenszyklus gebunden sind, finden Sie im Abschnitt Eingebaute Lebenszyklusbindungen der Einführung in den Build-Lebenszyklus . Sie alle folgen einem ähnlichen Muster wie die Ziele process-resources
und compile
. In Ihrem Fall möchten Sie wahrscheinlich das jar
-Ziel weglassen.
Tags und Links maven-2