Jak powstrzymać maven przed pobieraniem zależności przechodnich?

1

Mam wywołanie Maven, które pobiera artefakty w celu przeprowadzenia testów integracji:

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

Pom składa się wyłącznie z zależności, nic więcej. Istnieją inne skrypty, które pobierają artefakty z katalogu depsi uruchamiają na nich testy.

Teraz mój problem jest następujący: mimo że Maven kopiuje tylko artefakty, na które chcę deps, nadal pobiera wszystkie zależności przechodnie do pamięci podręcznej Maven, co jest stratą czasu i przepustowości (artefakty są kompilowane na innym kontynencie).

Czy jest jakiś sposób, aby powstrzymać maven przed pobraniem wszystkich zależności przechodnich do bufora?

Maven 3.0.4

Mile widziane są również rozwiązania wykorzystujące inne narzędzia, takie jak gradle lub ant + ivy, o ile mogą tworzyć układ repozytorium maven deps.

clacke
źródło

Odpowiedzi:

1

Maven ma ograniczone możliwości kontrolowania zakresu zależności, a dokumentacja nie jest najlepsza. Oto kilka w celach informacyjnych:

Paul Sweatte
źródło
Chcę jednak poszukać i pobrać najnowsze wersje bezpośrednich zależności. Wydaje się, że tryb offline w ogóle zapobiegałby pobieraniu.
clacke
W takim przypadku istnieje możliwość aktualizacji migawek , pozostając w trybie offline.
Paul Sweatte
Nie, --update-snapshotsto inny problem, dlatego tak często (zawsze, zamiast raz dziennie) ponownie sprawdza, czy migawki istniejące w .m2pamięci podręcznej zostały zaktualizowane wcześniej. Ale offline jest nadal offline.
clacke
Właściwie będąc offline, dostaję komunikaty o błędach dotyczące głębokich zależności, które nie istnieją w mojej lokalnej pamięci podręcznej, mimo że ich nie chcę. Tak więc offline nie jest drogą do przejścia.
clacke
Dzięki. Wygląda na to, że potrzebujesz wykluczenia zależności .
Paul Sweatte