Maven Jetty herunterladen Abhängigkeiten
-
24-09-2019 - |
Frage
Warum jedes Mal wenn ich "mvn jetty: run" do Maven versucht einige Abhängigkeiten (Apache POI und ojdbc Gläser) zum Download? Wie kann ich das abschalten?
[INFO] Scanning for projects..
[INFO] Searching repository for plugin with prefix: 'jetty'.
[INFO] ------------------------------------------------------------------------
[INFO] Building infolitReport
[INFO] task-segment: [jetty:run]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing jetty:run
Downloading: http://repository.springsource.com/maven/bundles/release/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/external/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/milestone/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/snapshot/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repo1.maven.org/maven2/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/release/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repository.springsource.com/maven/bundles/external/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repository.springsource.com/maven/bundles/milestone/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repository.springsource.com/maven/bundles/snapshot/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repo1.maven.org/maven2/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
[INFO] [aspectj:compile {execution: default}]
Lösung
Wie im Kapitel 3.5.5. Maven Dependency-Management :
Eine Abhängigkeit in Maven ist nicht nur eine JAR-Datei; es ist eine POM-Datei, die sich wiederum Abhängigkeiten von anderen Artefakte erklären kann. Diese Abhängigkeiten von Abhängigkeiten werden transitive Abhängigkeiten genannt, und sie sind möglich gemacht durch die Tatsache, dass der Maven Repository speichert mehr als nur Bytecode; es speichert Metadaten über Artefakte.
Also, wenn Maven eine JAR-Abhängigkeit herunterlädt, ist es nicht nur eine JAR-Download, sondern auch die POM-Datei. Hier versucht Maven sie herunterladen, aber sie existieren nicht (nur die JAR-Dateien vorhanden sind). So maven wird sie nicht in das lokale Repository schreiben und versucht, beim nächsten Mal wieder.
Es gibt 4 Möglichkeiten:
- Verwenden gute Bürger Artefakte mit POM-Dateien (oder die verantwortlichen bitten, das Problem zu beheben).
- Verwenden Sie ein Repository-Manager und erstellen und die POM-Dateien hochgeladen werden.
- Erstellen Sie die POM-Dateien in Ihrem lokalen Repository (zB mit
install:install-file
). - mit ihr leben (seufz) und laufen
mvn
offline mit der-o
Option, um es weniger schmerzhaft.
Andere Tipps
Warum würden Sie wollen, dass es zu stoppen? Sie können es ohne Download Abhängigkeiten führen? wenn Sie noch dies tun wollen so chk out
http://maven.apache.org /plugins/maven-resources-plugin/examples/include-exclude.html
Sehen Sie sich die exlude Tags
Im Grunde genommen werden die Abhängigkeiten zum ersten Mal heruntergeladen, wenn Sie den Befehl ausführen, aber einige Abhängigkeiten müssen ihre Versionen vergleichen und versuchen, die meisten zu bekommen up-to-date diejenigen, für die Sie in Ihrem nächsten Lauf.
Wenn Sie nicht immer eine Internetverbindung hat oder einfach nur kurz auf Ihre Build-Zeit, können Sie -o
Parameter anhängen, die Mittel offline laufen, zum Beispiel mvn jetty:run -o
Beispiel der Antwort von Pascal Thivent
Erstellen Sie die POM-Dateien in Ihrem lokalen Repository (zB mit
install:install-file
)
mvn install:install-file -DgroupId=org.apache.commons -DartifactId=codec -Dversion=1.3 -Dpackaging=jar -Dfile=lib/commons-codec-1.3.jar -DgeneratePom=true
mvn install:install-file -DgroupId=org.apache.commons -DartifactId=httpclient -Dversion=3.1 -Dpackaging=jar -Dfile=lib/commons-httpclient-3.1.jar -DgeneratePom=true
mvn install:install-file -DgroupId=org.apache.commons -DartifactId=logging -Dversion=1.1 -Dpackaging=jar -Dfile=lib/commons-logging-1.1.jar -DgeneratePom=true