2012-03-05 24 views
1

Mavenにいくつかの外部依存関係があるという問題があります。warファイルのMaven依存ファイル名からのバージョンの削除

私は一緒に製品のリリースを構成するサードパーティのライブラリを持っています。サードパーティの製品はmavenを使用していないか、またはpomファイルを提供していないので、結合された.jarファイルのコレクションが残っています。

は、私はこれらのファイルを持っていると言う:

  • のmail.jar
  • pe.jar
  • xpp3-1.1.3.4.M.jar

彼らはすべて同じの一部でありますバージョン2.0という製品の 'バージョン'

  • メール-2.0.jar
  • PE-2.0.jar
  • :私はMavenを持つこのプロジェクトをビルドするとき、私は中/ターゲット/ MyProjectとフォルダとMyProject.warファイル、次の名前のファイルを取得します
  • xpp3-1.1.3.4.M-2.0.jar

私は私の最終ビルドにこれらのファイル名を取得するように、どのように私は、ビルド時にそれらのバージョンタグを除外するためにMavenを伝えることができますか?

  • のmail.jar
  • pe.jar
  • xpp3-1.1.3.4.M.jar

私はMavenの戦争 - プラグインを見てきました:2.2 - >、デフォルト:

<outputFileNameMapping>${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>は - >エラーを例外:アーティファクトのためにファイルをcopytに失敗しました[..]:

また無効な引数、私のバージョン... <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>

...奇妙なファイル名を与える:

com.foo.bar-${artifact.artifactId}.${artifact.extension}(拡張子なし、プロパティの変換なし)

私が間違って何をしているのですか?

答えて

0

あなたは間違った方向に行きます。それらをローカルのNexusインスタンスにデプロイし、プロジェクトのPOMに依存するものとして宣言します。ヒント:XPP3とmail.jarは既にMaven Centralで利用可能です。車輪を再構築しないでください。

+0

これは私の質問に対する答えではありません。これは一例ですが、私はサードパーティ製の製品と一緒に提供されている20種類のライブラリを互いに何らかの形で相互に依存しています。車輪はすでにサプライヤーによって再発明されています。それらは私のPOMで宣言されていますが、このPOMの結果は、結果として得られるライブラリの名前がになりました。私はそれを取り除きたい。 – timh

+0

ファイル名にこれらのバージョン番号があるのはどうですか? –

-1

私はパーティーに遅れていますが、私はあなたがしたいことはこれだと信じています。

<build> 
    <finalName>${project.artifactId}</finalName> 
</build> 
+0

それは戦争の名前を変え、.warの中のライブラリではなく、私が信じているのは、彼が求めているものです。 – atom88

2

私は後でありますが、正解はまだありません。

とき、あなたは

を使用することができ、あなたはWARアーティファクトを構築し、あなたがファイル名にバージョン番号を持っていない土地ターゲットで/ $ {finalName}/WEB-INF/libに依存JARをしたいです​​

の構成は、maven-war-pluginです。

関連する問題