したがって、Maven RPM プラグインを使用して、期待どおりに RPM アーティファクトを生成できます。
RPM プラグインがアーティファクトをローカルの m2 リポジトリにインストールするように、pom.xml (pom としてパッケージ化) で attach-rpm ゴールを使用します (パッケージ フェーズにバインドされているため)。
問題: RPM で生成された名前は素晴らしく、次のようになります: code-module-1.0.3-SNAPSHOT20120727095507.amd64.rpm
ただし、maven がこれをローカル リポジトリにインストールすると、次のようになります。
コード モジュール rpm-1.0.3-SNAPSHOT-rpm.rpm
完全な名前、RPM のアーキテクチャ部分を失い、代わりに Maven が名前の末尾の .rpm 拡張子 (定義していない分類子) の前に rpm を追加し、代わりに私の pom アーティファクト ID を rpm 名として使用しています。 rpm 名自体の。
build-helper プラグインを使用して、ターゲット ディレクトリで生成された RPM を指定しようとしましたが、rpm 名が動的に生成され、build-helper プラグインがワイルドカードなどを使用せずに完全なファイル名のみを受け入れるため、これは機能しません。
Mavenの慣習に違反するため、アーティファクトの最終的な名前を変更したくありません。
ここにMavenの出力があります:
[INFO] Installing /home/xzcx/Development/repository/svn/source/parent-project
/code-module-rpm/target/rpm/code-module/RPMS/amd64/code-module-1.0.3-
SNAPSHOT20120727145507.amd64.rpm to
/home/xzcx/.m2/repository/com/xpackage/ypackage/codepackage/code-module-rpm/1.0.3-
SNAPSHOT/code-module-rpm-1.0.3-SNAPSHOT-rpm.rpm
何か考えはありますか?
更新: RPM プラグインのサイトには、attached:RPM ゴールを使用すると、さまざまなアーキテクチャなどで複数の RPM を構築できると記載されていることに注意しました...しかし、上記に基づいて、これが機能する唯一の方法は、分類子をRPM 名のアーキテクチャ ビットは、ローカル リポジトリのインストールに引き継がれません。