Ich fange gerade an, Maven zu verwenden, (evaluieren, wirklich) und ich muss in der Lage sein, schnell eine JAR Datei für meine Anwendung und ein Verzeichnis mit allen Abhängigkeiten (zum Beispiel lib) zu generieren, damit ich bereitstellen kann diese beiden werden in einer eigenständigen Art und Weise betrieben. Das Generieren der JAR-Datei mit dem richtigen Manifest ist einfach, aber ich weiß nicht, wie Maven dazu gebracht werden kann, die Abhängigkeiten für das aktuelle Projekt in ein lib
-Verzeichnis zu kopieren, das ich bereitstellen kann.Kann Maven alle abhängigen JARs für ein Projekt sammeln, um die Anwendungsbereitstellung zu unterstützen?
Da dies für eine eigenständige Java-Anwendungen ist, bin ich nicht interessiert an der Bereitstellung in einem Maven-Repository, das ist auch ziemlich trivial, oder zumindest leicht googleable.
Ich habe herausgefunden, wie man alles macht außer kopieren Sie die abhängigen JAR-Dateien in ein bestimmtes Verzeichnis. Dies ist der Workflow Ich suche nach:
$ mvn clean
$ mvn package
$ cp -r target/{lib,myApp.jar} installLocation
Dann myApp.jar
von installLocation
als JAR-Datei ausgeführt wird, sollte unabhängig von meinem $CLASSPATH
„einfach funktionieren“.
Um zu versuchen und vorgreifen einige Antworten:
- ich eine Main-Klasse haben Sie: set, und es funktioniert gut.
- Ich habe auch den Klassenpfad in der MANIFEST.MF festgelegt, und das funktioniert auch.
- Ich habe herausgefunden, wie man
<classpathPrefix>
und<classpathMavenRepositoryLayout>
verwendet, um diese Arbeit zu machen - aber nur auf meinem Rechner. (über:<classpathPrefix>${settings.localRepository}</classpathPrefix>
)
hinzugefügt dies meine pom.xml in Eclipse. Nichts passiert –
Ich musste Maven außerhalb Eclipse herunterladen, fügte den Ordner/bin zu meinem Pfad dann rannte 'mvn Abhängigkeit: Copy-Abhängigkeiten'. JA! Jetzt funktioniert es, Maven macht das, was es tun soll! Jetzt kopieren Sie einfach alle * .jar-Dateien in mein Projekt und fügen sie meinem Build-Pfad hinzu –