Ich arbeite an einem Projekt, das ant
verwendet. Ich hatte ein Ziel dist
, das im Grunde jar
zuerst tun würde, und dann installiere die Anwendung in ein Verzeichnis.
Das heißt, es würde Verzeichnisse wie bin/
, lib/
und config/
im Installationsverzeichnis erstellen und dann die relevanten Dateien in jedes dieser Verzeichnisse kopieren.
Meine Frage ist zweifach:
maven dist
machen und dies geschehen lassen. Wie würdest du vorschlagen, dass ich das mit Maven bewerkstellige? Bottom line: Ich möchte all dies tun, aber ich möchte nicht das Verhalten der Standardziele wie Kompilieren und Paket ändern.
Danke, jrh
PS: Ich benutze die Maven-Version 2.2.21
Ich weiß nicht, was in config
gehen würde, aber lib
und bin
ist einfach.
Um alle Abhängigkeiten in einen Ordner zu kopieren , tun Sie es einfach das:
%Vor%Um Ihr jar in einen bin-Ordner auszugeben, tun Sie dies ( Referenzseite ) ):
%Vor%Ah, es gibt zusätzliche Anforderungen:
Bottom line: Ich möchte all dies tun, aber ich möchte nicht das Verhalten der Standard "Ziele" wie Kompilieren und Paket etc ändern.
In diesem Fall würde ich ein Profil verwenden, um dies zu aktivieren:
%Vor% Nun würden Sie mvn clean package -Pdist
verwenden, um Ihr dist-Verzeichnis zu erhalten, und wenn Sie das Profil nicht hinzufügen, erhalten Sie das Standardverhalten.
Grundsätzlich funktionieren Dinge in Maven anders als bei Ameisen. Es gibt keine Ziele, es gibt nur Lebenszyklusphasen und Plugin-Ziele.
Sie können entweder eine Lebenszyklusphase ausführen, die alle maven plugin Ziele aufruft, die an alle Phasen bis zu dieser Phase gebunden sind (zB wenn Sie mvn compile
ausführen, werden die folgenden Phasen ausgeführt: validate
, initialize
, generate-sources
, process-sources
, generate-resources
, process-resources
, compile
). Aber es gibt keine (einfache) Möglichkeit, eine Lebenszyklusphase namens dist
zu definieren.
Oder Sie können ein bestimmtes Plugin-Ziel ausführen (Sie können tatsächlich mehrere Phasen und / oder Plugin-Ziele ausführen). Z.B. Sie könnten Ihr eigenes dist-Plugin schreiben und es mit mvn dist:dist
aufrufen, aber ich würde das nicht empfehlen, da Sie die vorhandenen Funktionen verwenden und die Profillösung ziemlich gut passen sollte.
Sie könnten versuchen, einen Assembly-Deskriptor für Assembly-Plugin (oder suche Google nach einem passenden).
So ähnlich
%Vor% erstellt ${project.artifactId}-dist.zip
in Ihrem target
-Verzeichnis. Die Zip-Datei wird wie
Es sieht so aus, als würde das Assembly-Plugin nur komprimierte Dateien erstellen, es wird nicht einfach in einen dist
-Ordner kopiert.
Seans Antwort ist gut und ich ging fast darauf los, bis ich von dem Appassembler-Plugin Ссылка .
Sehen Sie hier ein Beispiel Ссылка
Es wird als Teil des Paketlebenszyklus aufgerufen.
%Vor%
Die Deskriptoren, auf die es verweist, sind ziemlich direkt und es erstellt auch ein Stapel- und Shell-Skript, damit Sie Ihre Anwendung ausführen können!
Sie können nicht maven dist
haben, mit NetBeans (und anderen IDEs, glaube ich) können Sie eine benutzerdefinierte Aktion erstellen. co_de% wird als dist
(oder mvn install -Pdist
, wie von Sean vorgeschlagen) ausgeführt.
Tags und Links maven-2