Плагин Maven ‘versions’, порядок номеров версий

#maven #versions

#maven #Версии

Вопрос:

У меня есть проект Maven, который зависит от версии Javassist3.12.1.GA и имеет 2 репозитория (в дополнение к центральному): JBoss (https://repository.jboss.org/nexus/content/groups/public ) и Java.net (http://download.java.net/maven/2 ).

Вот последние доступные версии Javassist для каждого репозитория:

  • Центральный: 3.12.1.GA
  • JBoss: 3.12.1.GA (содержит также версию 3.3, см. Ниже)
  • Java.net : 3.3 (единственная доступная версия)

Когда я запускаю mvn versions:display-dependency-updates , он говорит, что я мог бы обновить версию Javassist:

 javassist:javassist ......... 3.12.1.GA -> 3.3
  

Это означает 3.3 > 3.12.1.GA , что в данном конкретном случае неверно!

Как я могу сообщить плагину versions, что он не должен касаться javassist или что он должен использовать другой порядок для этой конкретной зависимости?

Комментарии:

1. Вы должны определить свои собственные правила с помощью плагина versions, потому что javaassist не следует способу Maven с нумерацией версий.

Ответ №1:

Причина в том, что Maven обрабатывает номера версий, которых нет в формате Maven, как строку, и, следовательно, 3.3 больше, чем 3.12.1.GA Вы можете использовать versions-maven-plugin и определить исключение для javassist ( -Dexcludes=javassist:javassist). Или вы можете написать свою собственную версию для сравнения и использовать ее в качестве набора правил.

Если вы используете свой собственный менеджер репозиториев, то вы, конечно, можете вручную добавить туда javassist jar с правильной нумерацией версий Maven, чтобы versions-maven-plugin работал так, как задумано.