0

現在、Maven を使用してビルドする場合、jar 名は ${project.artifactId}-${project.version} です。ローカル リポジトリでは、構造は次のようになります。

-\.m2
---\repository
-----\com
-------\someproject
---------\1.0
-----------\someproject-1.0.jar

パスがすでにバージョンを正確に示しているのではないかと思っています.jar名をこのように命名する必要があるのはなぜですか。リポジトリのjar名のバージョン情報を削除する方法はありますか? 試してみましたが、jarをリポジトリにコピーしても機能しません。

質問を検索したところ、かなり多くの同様の質問が見つかりました。ウォーやイヤーなどのパッケージで大丈夫そうですが、ジャーはいかがですか?数年前に不可能と答えた人もいるので、今日解決策がある人もいるのではないかと思っています。

私が好む: -.m2 ---\repository -----\com -------\someproject ---------\1.0 -----------\ someproject.jar

4

1 に答える 1

4

Maven の規則では、アーティファクトに名前を付け<artifact>-<version>.jarます。フォルダーとアーティファクトにバージョン番号を含めるのは冗長に思えるかもしれませんが、これには理由があります。

アーティファクトに関連付けられた他のファイル (ソース、pom など) が存在する可能性があるため、リポジトリ内のバージョン番号のフォルダーに保存されます。

また、アプリケーションの配布のために、アーティファクトにバージョン番号を添付することも理にかなっています。ライブラリがアプリにパッケージ化されている場合、pom を調べなくてもパッケージ化されている依存関係のバージョンがわかると便利です (依存関係グラフを表示する場合も同様です)。

アーティファクト名にバージョン番号を付けないようにすることができたとしても、これらのmaven規則に依存しているため、いくつかのことが壊れると確信しているため、お勧めしません(mavenは構成よりも規則に関するものです)。

于 2012-11-29T04:57:59.827 に答える