私は 2 つの最上位 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)明示的な特定の一致を除外することさえあるようです。
versions-maven-plugin
バージョン番号を検証せずに、または別の目標を使用して、Maven プロパティ エントリを特定の値に書き換える簡単な方法はありますか? XML を理解しないようなツールは避けたいと思いsed
ますが (同様の質問で推奨されているように)、単純な XPath 操作で問題ありません。