プロパティをMavenに提供し、実際にpom.xmlファイルでそれらを置き換えるにはどうすればよいですか?例えば。私はパッケージといくつかの依存関係を展開するために使用する "テンプレート" pom.xmlを持っています。 artifactId
、version
などの変数を置き換えて、結果としてpom.xml
をアップロードします。pom.xml内のパラメータを置き換えます。
コマンドライン引数を使用しても機能しません。 mvn clean deploy -DartifactId=someArtifact
jarを正しい場所にアップロードしますが、アップロードされたpom.xml
には実際の値ではなくプレースホルダ変数が含まれています。
具体例:
POMファイル依存関係のこの定義が含まれています
<dependencies>
<dependency>
<groupId>com.avast.melka</groupId>
<artifactId>${runtimeId}</artifactId>
<version>${runtimeVersion}</version>
</dependency>
</dependencies>
そして私は、Mavenのようなもの含むPOMに対応するパッケージを展開する:
どう<dependencies>
<dependency>
<groupId>com.avast.melka</groupId>
<artifactId>actualIdValue</artifactId>
<version>1.0.42</version>
</dependency>
</dependencies>
を私はそれをしますか?私が見つけた最も近いものはhttp://maven.apache.org/plugins/maven-resources-plugin/examples/filter.htmlでした - しかし、これはPOMではなくリソースファイルの値を置き換えることを扱っています。そして、私にとっては別のユースケースのようです。
:
あなたの設定は次のようになります。 'maven-release-plugin'はバージョンと似たようなことをしています...私はそれが何をしているかに基づいて独自のプラグインを作ることができると思います。 – Tunaki
展開する成果物のpomファイルのテンプレートが必要なのはなぜですか?どうしてそれらを作成し、それを使って、mvn deployを使ってmavenビルドを使用しないのでしょうか? – khmarbaise
私は会社の異なるチームによってインスタンス化され、異なるGAVCと依存関係のmaven jarを生成するようカスタマイズされたジェネリックCIビルドジョブで自動的に使用したいと思います。各チームが独自のPOM.xmlを手動で作成する代わりに、インスタンス化時にビルドジョブパラメータをカスタマイズできるようにしたいと考えています。それとは別に、すべての変数が "石に設定"されていても、私はまだビルドで 'version'を提供する必要があります(3番目のビルド番号はビルド番号に相当します)。 –