Как я могу остановить Maven от загрузки транзитивных зависимостей?

5349
clacke

У меня есть вызов Maven, который загружает артефакты с целью запуска интеграционных тестов:

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

Пом состоит исключительно из зависимостей, ничего больше. Существуют и другие сценарии, которые выбирают артефакты из depsкаталога и запускают на них тесты.

Теперь моя проблема заключается в следующем: несмотря на то, что Maven копирует только те артефакты, в которые я хочу deps, он все же загружает все транзитивные зависимости в кэш Maven, что является пустой тратой времени и пропускной способности (артефакты компилируются на другом континенте).

Есть ли способ, как я могу остановить maven от загрузки всех транзитивных зависимостей в кеш?

Maven 3.0.4

Решения, использующие другие инструменты, такие как gradle или ant + ivy, также приветствуются, если они могут создавать макет репозитория Maven deps.

1

1 ответ на вопрос

1
Paul Sweatte

Maven имеет ограниченные возможности для управления областью зависимости, и документация не самая лучшая. Вот несколько для справки:

Я действительно хочу искать и загружать последние версии прямых зависимостей, хотя. Похоже, что автономный режим предотвратит загрузку. clacke 10 лет назад 0
Существует возможность [обновить снимки] (http://blog.akquinet.de/2010/05/18/mastering-the-maven-command-line-%E2%80%93-managing-dependencies/), оставаясь в автономном режиме в таком случае. Paul Sweatte 10 лет назад 0
Нет, `--update-snapshots` - это другая проблема, поэтому часто (всегда, а не один раз в день) проверяется, обновлялись ли моментальные снимки, существующие в кэше` .m2`. Но офлайн все еще не в сети. clacke 10 лет назад 0
На самом деле, находясь в автономном режиме, я получаю сообщения об ошибках о глубоких зависимостях, которых нет в моем локальном кеше, хотя я не хочу их. Так что офлайн это не тот путь clacke 10 лет назад 0
Благодарю. Похоже, что вам нужно [исключение зависимости] (http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-project-dependencies.html#pom-relationships-sect-conflict). Paul Sweatte 10 лет назад 0
Похоже, исключение зависимости - это ужасно явный, хрупкий и громоздкий способ решения этой проблемы в Maven. :-) clacke 10 лет назад 0
Я обновил ответ. Хороший вопрос. Paul Sweatte 10 лет назад 0