В Maven 3 зависимость: resol -U продолжает перезагружать один и тот же maven-metadata.xml снова и снова - PullRequest
4 голосов
/ 27 мая 2011

У нас возникла проблема с момента перехода с Maven 2 на Maven 3: если мы собираем с флагом '-U', проверка обновлений артефактов занимает намного больше времени по сравнению с Maven 2. Я не уверен, что такое Maven2 в этом случае, но кажется, что Maven загружает все maven-metadata.xml снова и снова.

Я использую следующую версию Maven:

$ mvn --version
Apache Maven 3.0.3 (r1080300; 2011-03-10 19:10:36+0100)
Maven home: C:\Programme\apache-maven-3.0.3
Java version: 1.6.0_18, vendor: Sun Microsystems Inc.
Java home: C:\Programme\Java\jdk1.6.0_18\jre
Default locale: de_DE, platform encoding: Cp1252
OS name: "windows xp", version: "5.1", arch: "x86", family: "windows"

У меня естьперенаправил вывод 'mvn dependency: resolv -U' и загрузил в http://lenni.info/dependency_resolve.log

. В нем вы можете видеть, что проект, который я создаю, имеет в общей сложности 142 зависимости (включая транзитивные), но журналимеет 6400 строк.Это кажется много.

Пример: если вы проанализируете журнал с помощью

cat dependency_resolve.log | grep mtcommons/maven-metadata.xml | wc -l

, вы увидите, что maven-metadata.xml mtcommons (внутренний проект, на который ссылаетсяпочти все наши внутренние артефакты) загружается 714 раз.Теперь у нас есть 3 хранилища (управляемых Nexus), и я понимаю, что все хранилища должны быть проверены, но 714 раз кажется слишком часто, не так ли?Похоже, что Maven3 не кэширует метаданные даже в пределах одной сборки, что приводит к повторной загрузке одних и тех же файлов несколько раз.

Я не могу поверить, что это поведение по умолчанию Maven 3, но подозреваю, что ошибка конфигурации на нашемчасть, возможно, в Nexus тоже.Тем не менее, после интенсивного поиска и большого количества поисков в Google, я пришел в себя.

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

1 Ответ

0 голосов
/ 19 мая 2012

https://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html#Maven3.xCompatibilityNotes-SnapshotUpdates

Похоже, это специально.

Давайте сделаем шаг назад - насколько медленно? Вы зеркалируете внешние репо на локальном репо? Какую реализацию удаленного менеджера репозитория Maven вы используете? Существует ряд стратегий, которые помогут уменьшить медлительность менеджера репозитория maven ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...