Как maven решает ссылаться на последнюю информацию об артефакте

Мы используем mvn deploy:deploy для развертывания артефакта в диспетчере репозитория, и разработчик мог бы сделать только mvn install для того же артефакта, поэтому артефакт присутствует под M2_HOME\.m2\repository

Будет ли среда выполнения maven извлекать артефакт из менеджера репозитория, если он был обновлен недавно, чем копия локального репозитория?

Примечание. Мы используем менеджер репозиториев maven на основе Apache Archiva.


person Joe    schedule 16.08.2011    source источник
comment
Если кто-то развернул файл с помощью mvn deploy:deploy, он будет помещен в диспетчер репозиториев (архив), а другим нужно только определить артефакты как зависимости...   -  person khmarbaise    schedule 16.08.2011


Ответы (1)


Ответ зависит от того, говорите ли вы о моментальном снимке или сборке выпуска.

Сборки выпуска имеют версию, которая не заканчивается на «-SNAPSHOT», и они являются окончательными и неизменяемыми. После установки в любой репозиторий Maven никогда не будет их обновлять. На ваш вопрос это означает, что если разработчик устанавливает сборку релиза локально, она никогда не будет обновляться из какого-либо удаленного репозитория.

Сборки моментальных снимков всегда могут быть обновлены из любого репозитория. По умолчанию Maven проверяет наличие новых версий моментальных снимков один раз в день, поэтому, если кто-то устанавливает моментальный снимок локально, этот моментальный снимок будет существовать до тех пор, пока Maven не выполнит следующую проверку обновлений моментального снимка. Затем, если более новая версия находится в каком-либо удаленном репозитории, который он проверяет, локальная версия будет перезаписана. Вы можете заставить maven обновлять артефакты моментальных снимков с помощью параметра командной строки -U.

person Ryan Stewart    schedule 16.08.2011