Wie kann ich verhindern, dass Maven transitive Abhängigkeiten herunterlädt?

5460
clacke

Ich habe einen Maven-Aufruf, der Artefakte zum Ausführen von Integrationstests herunterlädt:

mvn -Dmdep.useRepositoryLayout=true -Dmdep.copyPom=true -Dmdep.useBaseVersion=true dependency:copy-dependencies -DoutputDirectory=deps -DexcludeTransitive=true -e 

Der Pom besteht nur aus Abhängigkeiten, sonst nichts. Es gibt andere Skripte, die die Artefakte aus dem depsVerzeichnis aufheben und Tests ausführen.

Nun, mein Problem ist folgendes: Auch wenn Maven nur die Artefakte kopiert, in die ich möchte deps, werden alle transitiven Abhängigkeiten in den Maven-Cache heruntergeladen, was eine Verschwendung von Zeit und Bandbreite darstellt (die Artefakte werden auf einem anderen Kontinent kompiliert).

Gibt es eine Möglichkeit, wie ich Maven davon abhalten kann, alle transitiven Abhängigkeiten in den Cache herunterzuladen?

Maven 3.0.4

Lösungen, die andere Tools wie Gradle oder Ant + Ivy verwenden, sind ebenfalls willkommen, sofern sie das Maven-Repo-Layout in erstellen können deps.

1

1 Antwort auf die Frage

1
Paul Sweatte

Maven verfügt über begrenzte Möglichkeiten zur Kontrolle des Abhängigkeitsbereichs und die Dokumentation ist nicht die beste. Hier sind einige als Referenz:

Ich möchte jedoch die neuesten Versionen der direkten Abhängigkeiten suchen und herunterladen. Es scheint, dass der Offline-Modus verhindern würde, dass Downloads überhaupt stattfinden. clacke vor 11 Jahren 0
Es gibt eine Option, [Momentaufnahmen aktualisieren] (http://blog.akquinet.de/2010/05/18/mastering-the-maven-command-line-%E2%80%93-managing-dependencies/), während Sie offline bleiben In diesem Fall. Paul Sweatte vor 11 Jahren 0
Nein, `--update-snapshots 'ist ein anderes Problem. So wird (immer und nicht einmal pro Tag) überprüft, ob im` .m2`-Cache vorhandene Snapshots vor dem Upstream aktualisiert wurden. Offline ist aber immer noch offline. clacke vor 11 Jahren 0
Wenn ich offline bin, erhalte ich Fehlermeldungen über tiefe Abhängigkeiten, die nicht in meinem lokalen Cache vorhanden sind, obwohl ich sie nicht möchte. Offline ist also sowieso nicht der Weg. clacke vor 11 Jahren 0
Vielen Dank. Anscheinend ist [Abhängigkeitsausschluss] (http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-project-dependencies.html#pom-relationships-sect-conflict) genau das, was Sie brauchen. Paul Sweatte vor 11 Jahren 0
Es sieht so aus, als wäre der Ausschluss von Abhängigkeiten der äußerst explizite, spröde und umständliche Weg, um dieses Problem in Maven zu lösen. :-) clacke vor 11 Jahren 0
Ich habe die Antwort aktualisiert. Gute Frage. Paul Sweatte vor 11 Jahren 0