Можно ли ускорить загрузку артефактов maven?

К сожалению, начальная сборка maven очень медленная из-за загрузки артефактов
F.E. Я попытался загрузить ту же самую банку, используя curl - это в 3 раза быстрее!!!
Зачем? И как я могу ускорить его? Может быть, у maven есть некоторые ключи конфигурации, связанные со скоростью загрузки артефактов?

Спасибо.

Ответ 1

Используйте локальный менеджер репозитория/зеркало/прокси. Тогда все загрузки будут идти против этого вместо публичных репозиториев в Интернете. Самые популярные:

Они довольно просты в установке и настройке и обеспечивают большую ценность. Большинство из них также имеют бесплатные версии. Просто используйте старый блок разработки, чтобы начать работу и перейти на реальный сервер, как только вы захотите расширить область действия и сделать ее доступной для большего количества людей.

Ответ 2

Вы можете загрузить артефакт с помощью curl (если вы считаете, что это быстрее) и установить его в репозиторий maven, используя следующую команду:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
    -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

Как только вы установите его в локальный репозиторий, в следующий раз maven выберет его оттуда и не будет пытаться снова загрузить.

Кроме того, если сайт централизованного репозитория maven работает медленнее, рассмотрите использование зеркал репозитория Maven.

Руководство по настройкам зеркала - http://maven.apache.org/guides/mini/guide-mirror-settings.html

Ответ 3

Лучшая оптимизация - избежать загрузки. Посмотрите на settings.xml конфигурацию maven и проверьте, установлен ли флаг updatePolicy на "ежедневно" на releases и snapshots. Это должно быть значение по умолчанию, но иногда оно может быть установлено как "всегда" - например. в конфигурациях менеджера хранилища.

Внимание: в этом случае (ежедневно) вы должны быть осторожны при изменениях моментальных снимков, которые вы не можете получить немедленно.

Я знаю, что это не прямой ответ на ваш вопрос, но лучшая оптимизация загрузки maven, которую я знаю.

Ответ 4

Я знаю, это старый вопрос, но наткнулся здесь от Google. У меня уже был прокси, просто нужно было ускорить одновременную загрузку. Вы можете использовать опцию mvn:

-Dmaven.artifact.threads=30

Источник: https://maven.apache.org/guides/mini/guide-configuring-maven.html.

Configuring Parallel Artifact Resolution
By default, Maven 2.1.0+ will download up to 5 artifacts (from different groups) at once. To change the size of the thread pool, start Maven using -Dmaven.artifact.threads. For example, to only download single artifacts at a time:

mvn -Dmaven.artifact.threads=1 verify
You may wish to set this option permanently, in which case you can use the MAVEN_OPTS environment variable. For example:

export MAVEN_OPTS=-Dmaven.artifact.threads=3