Если зависимость является уникальной версией моментального снимка и вызывается установка, что выбирает maven? - PullRequest
3 голосов
/ 19 мая 2010

Представьте себе два проекта. Первым является проект framework-core, который находится в версии 1.1.0 и имеет несколько сборок снимков. Другой проект example-business, который имеет следующую зависимость от framework-core от номера итерации сборки 9.

<dependency>
  <groupId>org.example</groupId>
  <artifactId>framework-core</artifactId>
  <version>1.1.0-20100518.134928-9</version>
</dependency>

Что произойдет, если framework-core вызывается на *1009*? Я обнаружил, что артефакт копируется в папку и имеет имя *.1.1.0-SNAPSHOT.jar (как и ожидалось).

Это привело меня к предположению, что эта версия используется только в том случае, если даже эта 1.1.0-SNAPSHOT версия определена как зависимость, а не как точная сборка.

Чтобы проверить что-то локальное без развертывания в репозитории maven: вызовите mvn install, измените зависимость на 1.1.0-SNAPSHOT - а только что установленный артефакт используется? Или возможно перезаписать конкретную сборку (с использованием фазы жизненного цикла install)?

1 Ответ

7 голосов
/ 19 мая 2010

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

Если вы хотите использовать самую последнюю версию -SNAPSHOT, объявите зависимость от версии -SNAPSHOT, чтобы разблокировать зависимость:

<dependency>
  <groupId>org.example</groupId>
  <artifactId>framework-core</artifactId>
  <version>1.1.0-SNAPSHOT</version>
</dependency>

Изменить его вручную не составляет большого труда, но в некоторых ситуациях могут помочь следующие цели плагина Versions Maven :

  • versions:lock-snapshots ищет в помпе все -SNAPSHOT версии и заменяет их текущая версия отметки времени этого -SNAPSHOT, например, -20090327.172306-4
  • versions:unlock-snapshots ищет пом для всех временных отметок заблокированные снимки версий и замен их с -SNAPSHOT. версии: разблокировка моментальных снимков
...