Подтвердить что ты не робот

Как точно работает mvn -U?

Я хочу знать, что именно Maven делает в фазе -U.

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

Как описано:

-U --update-snapshots Forces a check for updated releases and snapshots on remote repositories

Но как именно это делается? Является ли maven в первую очередь загружать все удаленные репозитории и локально решает, что им нужно обновляться или, решив, не загружая их в первую очередь? Есть ли какие-то угловые случаи, которые должны быть известны?

Моя версия Maven:

Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T16:51:42+03:00)
Maven home: /usr/local/Cellar/maven/3.2.2/libexec
Java version: 1.7.0_60, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.4", arch: "x86_64", family: "mac"
4b9b3361

Ответ 1

Это делается только для артефактов или зависимостей, на которые ссылается ваш проект.

Последняя метка времени сохраняется в локальных метаданных артефакта (в вашем локальном репозитории Maven), поэтому Maven может применять различные стратегии, как часто проверять наличие обновлений на основе этого. Интервал обновления по умолчанию для снимков - "ежедневно".

Также смотрите updatePolicy для удаленных репозиториев в настройках Maven.xml.