Почему maven 2 пытается загрузить зависимости, которые у меня уже есть?

когда я запускаю команду "mvn install", maven иногда пытается загрузить зависимости, которые он уже загрузил. Это ожидается для моментального снимка, но почему maven делает это для других банок?

Я знаю, что могу избежать этого поведения флагом "-o", но мне просто интересно, в чем причина.

4 ответов


Я бы искал зависимости, которые не имеют указанного номера версии. Maven будет периодически проверять, чтобы убедиться, что он имеет самую последнюю версию этих артефактов.


Это, вероятно, не то, что вы видите, но в прошлом мне приходилось вручную устанавливать артефакты в свой локальный репозиторий, и если вы забыли включить-Dgenerate.POM=true option в репозитории для этого артефакта не будет pom, и Maven выйдет в central (и любые другие удаленные репозитории, которые вы настроили), чтобы попытаться загрузить этот pom при каждой сборке.


пока мы говорим об этом, я столкнулся с серьезной ошибкой в Maven 2.0.X. В автономном режиме maven все равно попытается загрузить последний снимок, и когда он не сможет найти РЕПО снимка, он не сможет выполнить сборку. Представьте себе веселье, которое возникает, когда это происходит на месте с клиентом, и вам просто нужно было внести небольшие изменения (но я отвлекаюсь).

вот ошибка: http://jira.codehaus.org/browse/MNG-2433 вот обход: http://mail-archives.apache.org/mod_mbox/maven-users/200601.mbox/%3C117228810601130559l7e79a5e2k@mail.gmail.com%3E


флаг-o все еще не работал для меня, но это сделало:

find ~/.m2/repository -name '_maven*' | xargs rm
find ~/.m2/repository -name '*lastUpdated' | xargs rm

который удалит все .lastUpdated и _maven.хранилища файлов в локальном РЕПО. Я столкнулся с этой проблемой, потому что у нас есть корпоративное РЕПО Nexus, которое было недоступно, и мне нужно было сделать некоторую работу. Возможно, этому также способствовало использование интеграции Maven Eclipse.