У меня есть два проекта Maven на верхнем уровне, backend
и frontend
, которые продвигают версии по собственному индивидуальному темпу. Поскольку каждый из них имеет несколько модулей, я определяю свои версии зависимостей в разделах dependencyManagement
в родительских/агрегированных POM и использую свойство для номера версии.
Я хочу чисто обновить свойство с номером версии на frontend
, желательно произвольно, но я могу жить с требованием соответствия текущей версии восходящего потока. Я пробовал использовать versions:update-property
, но эта цель кажется совершенно нефункциональной; независимо от того, существует ли фактически соответствующая версия восходящего потока, я получаю этот вывод отладки:
$ mvn versions:update-property -Dproperty=frontend.version -DnewVersion=0.13.2 -DautoLinkItems=false -X
...
[DEBUG] Searching for properties associated with builders
[DEBUG] Property ${frontend.version}
[DEBUG] Property ${frontend.version}: Looks like this property is not associated with any dependency...
[DEBUG] Property ${frontend.version}: Set of valid available versions is [0.9.0, 0.9.1, 0.9.2, 0.9.3, 0.9.4, 0.9.5, 0.10.0, 0.10.1, 0.11.0, 0.12.0, 0.13.0, 0.13.1, 0.13.2, 0.13.3]
[DEBUG] Property ${frontend.version}: Restricting results to 0.13.2
[DEBUG] Property ${frontend.version}: Current winner is: null
[DEBUG] Property ${frontend.version}: Searching reactor for a valid version...
[DEBUG] Property ${frontend.version}: Set of valid available versions from the reactor is []
[INFO] Property ${frontend.version}: Leaving unchanged as 0.13.1
[INFO] ------------------------------------------------------------------------
Я указал -DautoLinkItems=false
, и это, кажется, не имеет никакого эффекта; versions-maven-plugin
все еще сканирует все мои POM для соответствия зависимостей, подбрасывает руки и завершает работу. Я также попытался установить searchReactor
в false
для этого свойства в конфигурации плагина. Похоже, что плагин (1) неправильно сканирует зависимости, даже когда я явно сказал, что их игнорируют, и (2) даже фильтрует явно определенное соответствие.
Есть ли простой способ переписать запись свойства Maven на определенное значение, либо форсируя versions-maven-plugin
делать то, что я говорю, не проверяя номер версии или используя другую цель? Я бы предпочел избежать использования такого инструмента, как sed
, который не понимает XML (как я видел, рекомендуется в аналогичном вопросе), но я был бы в порядке с простой манипуляцией XPath.