お互いに依存する2つのプロジェクトのデプロイメントパイプラインを構築しています。各ビルドは、独自のバージョン番号を持つ新しいリリースビルドを作成します。これは、Mavenリポジトリにデプロイされます。パイプラインの下流のプロジェクトは、その新しいバージョンを依存関係としてトリガされ、同様の方法で構築されます。Maven pom.xmlを物理的にの値に変更する
私が必要とするのは、プロジェクトをビルドする前にpom.xml(またはマルチモジュールプロジェクトのすべてのポム)のプロパティ値を変更することです。たとえば、次のコードでは、 "0.1.200"は "0.1.345"(または最新のビルド番号が何であれ)に変更されます。更新されたpomはMavenリポジトリにデプロイされるため、システムプロパティの使用はオプションではないため、変更は永続的でなければなりません。
<properties>
<foo.version>0.1.200</foo.version>
</properties>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>foo</artifactId>
<version>${foo.version}</version>
</dependency>
</dependencies>
1つのコマンドライン命令でこれを行うためのいくつかのMavenプラグインはありますか?それ以外のプロジェクトのすべてのpom.xmlファイルを解析して変更する短いスクリプト(例えばRuby)を書く必要があります。
このプラグインには、依存関係を最新のバージョンに自動的に更新する操作がありますが、単一のプロパティを指定した値に更新する方法はありませんでした。 –
[versions-maven-plugin](http://mojo.codehaus.org/versions-maven-plugin/examples/update-properties.html)は、このようなプロパティを処理できます。ドキュメントを見てください。 – khmarbaise
versions:update-propertiesの問題は、最新バージョンが何であるかを自動的に検出しようとすることです。誤ってMavenに古いバージョンや新しいバージョンが見つかる可能性があるため、デプロイメントパイプラインではうまくいきません。反復不可能なビルドを避けるために、私はどのバージョンを使うべきかを明確にする必要があります。 –