Предисловие: Я приобрел исторически сложившийся многомодульный проект Maven.Теперь пришло время очистить версии зависимостей.Поскольку использование диапазонов версий имеет свои проблемы (во-первых, они не работают в соответствии со спецификациями; во-вторых, они устраняют воспроизводимость сборки), я перехожу к представлению version-maven-plugin (v2.7).
В настоящее время я пытаюсь заставить его обновить версии артефактов зависимости, используя цель versions:use-latest-releases
.Он работает по большей части, но продолжает находить бета-версии для обновления - я удивлен, что они, по-видимому, считаются «релизом».Мне удалось настроить плагин в супер родительском pom (pom.xml
в упакованном pom артефакте с соответствующим именем super
), который все модули и подмодули называют родительским (иногда косвенным).Я обнаружил, что опция ссылается на xml-файл, содержащий правила для игнорирования определенных версий или шаблонов версий - к сожалению, я не могу поместить правила непосредственно в супер родительский pom (или я еще не нашел опцию).
Итак, вот мой вопрос: как мне ссылаться на файл (в соответствии с документами: "используя универсальный URI или URI-путь к классам"), который находится рядом с pom.xml
суперродительский артефакт, который упакован в формате pom для установки в Nexus?Согласно моим исследованиям, это невозможно.
Итак, позвольте мне выразить это в более широком смысле: как мне централизованно настроить плагин version-maven через многокомпонентное дерево проектов maven, чтобы он игнорировалсявсе версии, соответствующие регулярному выражению .*-b.*
?
В идеале мне даже не нужно было бы импортировать супер-проект в мое рабочее пространство, и этот файл не должен лежать на веб-сервере (я хочу, чтобы он был связан с супер-проектом, а не где-то летал).