Maven 3 разрешение зависимостей не удается до тех пор, пока файлы maven-metadata-local.xml не будут удалены [связанные с maven-invoker-plugin]

В одном из моих проектов Maven разрешение зависимостей будет успешным один раз, а затем не удастся для последующих попыток сборки:

[WARNING] The POM for commons-logging:commons-logging:jar:1.1.1 is missing, no dependency information available
[WARNING] The POM for commons-httpclient:commons-httpclient:jar:3.1 is missing, no dependency information available
[WARNING] The POM for javax.mail:mail:jar:1.4.4 is missing, no dependency information available

… и так далее, до Я удалю файлы maven-metadata-local.xml , соответствующие неисправным артефактам (например, ~ / .m2 / repository / commons -logging / commons-logging / maven-metadata-local.xml ). После удаления этих файлов следующий вызов mvn выполняется правильно; файлы метаданных восстанавливаются этим вызовом (предположительно, как часть процесса проверки моих вышестоящих репозиториев / зеркал на наличие обновленных артефактов), и мне снова выдаются указанные выше ошибки, пока я снова не удалю файлы метаданных.

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

Мысли?

Обновление: Похоже, что эти файлы maven-metadata-local.xml производятся с помощью плагина maven-invoker-plugin (который эти сборки используют для тестирования интеграции общего назначения) . Я не использую локальное репозиторий только для тестирования интеграции , как описано здесь , просто потому, что это приводит к повторной загрузке всех транзитивных зависимостей (, если вы не хотите поддерживать настройки, специфичные для интеграции .xml файл !!! ). Таким образом, я использовал плагин invoker с множеством других проектов с хорошими результатами - конечно, никогда не встречал заклинивший локальный репозиторий в этом процессе.

Обновление 2 Хорошо, это повторяется даже после начиная с полностью свежего локального репозитория. Это на OS X, Java 1.6.0_24 с Maven 3.0.3; обратите внимание, что Maven 2.2. 1 НЕ демонстрирует эту проблему.

Вот один из рассматриваемых проектов: ветвь 1.3.0-compat . Для воспроизведения:

> mvn clean test
# no error -- can run this and other builds that don't involve maven-invoker-plugin all day w/o problems
> mvn clean integration-test
# FAIL: "Could not resolve dependencies", with warnings as noted above
> mvn clean test
# FAIL: "Could not resolve dependencies", with warnings as noted above

После того, как локальный репозиторий скомпилирован (путем создания файлов maven-metadata-local.xml , AFAICT), никакие сборки не пройдут этап разрешения зависимостей.

Запуск mvn -X показывает подобные строки для каждого артефакта, который позже, по-видимому, не обнаружен:

[DEBUG] Verifying availability of /Users/chas/.m2/repository/javax/mail/mail/1.4.4/mail-1.4.4.jar from []

Конечно, /Users/chas/.m2/repository/javax/mail/mail/1.4. 4 / mail-1.4.4.jar и др. существует , как и /Users/chas/.m2/repository/javax/mail/mail/1.4.4/mail-1.4.4.pom . Совершенно озадачен. На данный момент я предполагаю, что это ошибка в Maven 3 (или какой-либо базовой библиотеке), теперь, когда я вижу, что 2.2.1 чист.

Обновление 3 Отчет об ошибке отправлен в проект Maven .

7
задан cemerick 8 May 2011 в 11:19
поделиться