Mit Maven herunterladen Abhängigkeiten in einem Verzeichnis auf der Kommandozeile
Muss ich herunterladen alle transitiven Abhängigkeiten eines Projekts in ein Verzeichnis auf der Kommandozeile ohne mit einem pom.xml Datei oder ein Skript. Idealerweise würde ich in der Lage sein, dies zu tun mit ein oder zwei Befehle. Was ich sagen kann, ist dies zumindest eine 2-Schritt-Prozess, mit mvn.
- Download-Abhängigkeiten in das lokale repository
- Kopieren Sie die Abhängigkeiten in das lib Verzeichnis
Um die Abhängigkeiten, die ich laufen
$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.6:get -DgroupId=org.jclouds.provider -DartifactId=rackspace-cloudservers-us -Dversion=1.5.8
Welche Super funktioniert. Leider ist die dest param hilft mir nicht, da er nicht setzen alle transitiven Abhängigkeiten in der dest.
So, jetzt muss ich kopieren, dass die JAR-Datei und alle transitiven Abhängigkeiten in mein lib-Verzeichnis. Ich weiß, dieser Teil wurde gefragt, viele Zeit auf StackOverflow, aber nichts hat geklappt für meine noch. Ich habe versucht, die folgenden.
$ mvn dependency:copy-dependencies ...
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.1:copy-dependencies (default-cli): Goal requires a project to execute but there is no POM in this directory
und
$ mvn dependency:copy ...
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.1:copy (default-cli): Goal requires a project to execute but there is no POM in this directory
Aus der Lektüre der Dokumentation, und andere Antworten hier auf StackOverflow für copy-Abhängigkeiten und kopieren ich dachte, ich wäre in der Lage, Sie zu verwenden von der Befehl Linie ohne pom.xml aber mvn scheint zu müssen. Mein Maven-version ist Apache Maven 3.0.4 (r1232337; 2012-01-17 02:44:56-0600).
Kann mir jemand ein Beispiel für das kopieren von transitiven Abhängigkeiten mit mvn ohne pom.xml?
Gibt es eine bessere Weise, das zu tun, was ich versuche zu erreichen hier?
- Es ist eine schöne antrun-plugin , können Sie es versuchen ?
- Ich nehme an, du meinst maven.apache.org/plugins/maven-antrun-plugin Wie würde es verwendet werden, um zu tun, was ich versuche zu erreichen?
- Ich bin mit dem laufen Ziel der antrun-plugin für das kopieren und verschieben von Verzeichnissen , so könnte man vielleicht sammeln Sie alle Ihre Dateien (jars, cfg-Dateien etc.) einige Ordner und von dort aus übertragen ? oder einfach mit cp/xcopy ?
- Das würde nicht für die transitiven Abhängigkeiten automatisch. Ich bin wirklich auf der Suche nach einem Weg, im Idealfall tun Sie dies mit einem einzigen Befehl oder höchstens zwei. Was Sie vorschlagen wäre mir ein Skript zu schreiben, das ist genau das, was ich versuche zu vermeiden. Vielen Dank für die Klarstellung für mich. Ich werde zu aktualisieren, ist die Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem ersten Befehl, fast bekommt man das, was Sie brauchen - POM von der Abhängigkeit in Frage. Sobald Sie dass haben, sollten Sie nicht brauchen, ein weiteres Projekt POM laufen
copy:dependencies
:Hier ein Beispiel:
Wie bereits von Everett Toews, können Sie zusätzliche Optionen
Kopie:Abhängigkeiten
weiter zu verfeinern, was heruntergeladen wird, z.B. durch hinzufügen-DexcludeTypes=test-jar
heraus zu filtern, die test-Gläser.Apache ivy ausgeführt werden kann, da eine standalone-jar zum herunterladen von Maven Abhängigkeiten. Kein POM erforderlich.
Erzeugt die folgenden Dateien:
curl
- und URL-Muster kann erhalten werden, dass einzelne jar. Oder, für Dockerfile, dasADD
Befehl.Nach meinem Verständnis, das Sie herunterladen möchten alle Abhängigkeiten Artefakte zu einem Ordner auf Ihrem lokalen computer (ohne durchsuchen Sie Ihre lokale repository). Der einfache Weg, es zu tun zu schaffen, ist eine einfach
pom.xml
(ja, bitte erstellen Sie die pom), das erstellen der war-Datei und wird davon abhängen, Ihre Artefakt. Nachmvn clean package
findest du alle Abhängigkeiten Artefakte (sind transitiv) in den lib-Ordner des KRIEGES.