Не отображается последняя версия зависимостей при запуске версий:display-dependency-updates
Я пытаюсь обновить зависимости в моем проекте Java Mvn до последней версии. Когда я запускаю команду ниже, я вижу последние версии, но я вижу разные версии в центральном репозитории.
mvn versions:display-dependency-updates -DskipTests=true --update-snapshots install
Например, когда я запустил команду выше, я получил это для commons-collection
commons-collections:commons-collections ............ 3.2.1 -> 20040616
Но когда я просматриваю его в центральном репозитории - commons-collection: MVN Repo, я вижу много обновлений после 20040616
Может кто-нибудь уточнить, какая последняя версия и команда MVN, чтобы получить последнюю версию?
3 ответа
Команда display-dependency-updates предполагает, что версии нумеруются в соответствии с <Major>.<Minor>.<Incremental>-<Qualifier>
структура, в соответствии с Правилами номера версии версии-плагина. Он определяет "новейшие" путем сортировки по этим критериям, а не по какой-то временной метке. При использовании зависимостей, которые следуют другим правилам, маловероятно, что вы сможете сказать, какая версия на самом деле новее. К сожалению, это делает обновления отображаемых зависимостей не такими полезными, как можно было бы надеяться, но я все же нахожу это полезным в качестве отправной точки для проверки и просмотра того, какие зависимости, возможно, потребуется обновить.
К сожалению, Maven не знает, когда была опубликована зависимость, он просто сравнивает текст.
В вашем случае последняя версия commons-collection: commons-collection - это 3.2.1
, но если вы сравните текст, 20040616
больше.
Так в основном 20040616
> 3.2.1
потому что это думает 20040616
является основной версией, и она больше, чем 3
,
Подробнее читайте здесь: https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm
Я обычно использую http://mvnrepository.com/ чтобы найти последнюю версию артефакта, а вы использовали http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22commons-collections%22%20AND%20a%3A%22 общих коллекций% 22. Однако я вижу похожие проблемы. 20040616 - это не дата артефакта, это версия артефакта. Поскольку 20040616 больше 1, 2, 3 или 4, версия 20040616 всегда будет рассматриваться как последняя версия. Казалось бы, этот артефакт следует удалить из хранилища, поскольку он не подчиняется правилам нумерации. Я видел несколько других подобных проблем в репозитории, но я не уверен, к кому обратиться, чтобы исправить это.
http://www.mojohaus.org/versions-maven-plugin/display-dependency-updates-mojo.html описание дисплеев-зависимостей-обновлений