Почему плагин maven versions обновляет основную версию, когда ему говорят не делать этого?


Я не знаю, попал ли я просто в ошибку в плагине Maven versions или есть что-то, чего я не понимаю... Я использую versions:use-latest-releases обновить версии зависимостей в файле pom, указав не разрешать основные обновления с помощью -DallowMajorUpdates=false. Похоже, maven берет функцию в соответствии с выводом (см. ниже), но затем я обновляю основную версию Tomcat (см. ниже).

Примечание: я замаскировал название проекта, но остальное-дословно.
C:>mvn clean versions:use-latest-releases -DallowMajorUpdates=false
[INFO] Scanning for projects...
[INFO]
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building XXXXXXXXXXX 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ XXXXXXXXXXX ---
[INFO]
[INFO] --- versions-maven-plugin:2.1:use-latest-releases (default-cli) @ XXXXXXXXXXX ---
[INFO] Minor version changes allowed
Props: {project.version=1.0-SNAPSHOT, project.artifactId=XXXXXXX,  project.groupId=xxx.xxx.xxxxxx}
[INFO] Updated org.apache.tomcat:servlet-api:jar:6.0.33 to version 7.0.0.RC3
[... more stuff ...]

Любой идеи? Спасибо.

1 2

1 ответ:

Я думаю, что это связано с номером версии servlet-api (7.0.0.RC3), который не является номером версии Maven conform. Maven и плагин версии ожидают что-то вроде этого:

<major version>.<minor version>.<incremental version>-<qualifier>

Номера версий, такие как не совпадение, также портят диапазоны версий maven. Я не знаю, как плагин version number делает это, но maven будет использовать сравнение строк для номеров версий, не соответствующих схеме, и поэтому ничего не знает о главных и второстепенных версиях. См. Проект Версии .

Возможно, вы можете исправить это поведение, используя правила для плагина версии и игнорируя все версии, начинающиеся с 7 (см. правила). Я никогда не использовал их, поэтому я не могу оказать никакой помощи в этом, кроме документации.