4

Mavenで開発されたプロジェクトがあります。クラスパスに新しいjarファイルを追加したい。pom.xml ファイルに新しい依存関係を追加しました。

<dependency>
<groupId>mzmatch</groupId>
<artifactId>mzmatch</artifactId>
<version>1.2.13</version>
</dependency>

すべての jar ライブラリは lib ディレクトリにあります。すべてのライブラリの名前は artifactId-version.jar と一致し、それらの場所は (lib ディレクトリ内の) groupId/artifactId/version です。したがって、mzmatch-1.2.13.jar ファイルについても同じことを行いました。

pom ファイルに新しい依存関係を追加する以外に、jar を Manifest.MF ファイルのクラスパスに追加しました。しかし、ソフトウェアはまだ私のjarファイルを認識していません。他に何をすべきですか?または、ライブラリを正しく追加しませんでしたか?

4

1 に答える 1

9

これはあなたが開発した jar であり、Maven がそれを依存関係として取得することを望んでいると想定しています。そのためには、ローカルの Maven リポジトリにインストールする必要があります。プロジェクトの lib ディレクトリではなく、.m2 ディレクトリ (おそらく Windows のホーム ディレクトリから離れている) です。おそらくコマンドラインからこれを実行したいでしょう:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=mzmatch -DartifactId=mzmatch -Dversion=1.2.13 -Dpackaging=jar

詳細については、こちらをご覧ください。

編集 1: OP が大規模なチーム内で機能していないと想定しています。依存関係が開発チーム内の他の誰かによって必要とされた場合、NexusArtifactoryなどの共有内部アーティファクト リポジトリにデプロイする必要があります。これらのアプリケーションには、成果物をアップロードするためのページがあります。

編集 2: ライブラリを依存関係として pom.xml に追加すると、Maven がこの新しいプロジェクトのコードをコンパイルするときに、クラスパスにライブラリが含まれるようになります。実行時にそこに置きたい場合 (たとえば、実行可能な jar が必要な場合)、それを の Class-Path エントリに入れたい場合MANIFEST.MFは、Mavenで設定することができます。mzmatch-1.2.13.jarそれでも、ファイルは新しいプロジェクトと同じディレクトリに配置されません。それを手動で行いたくない場合は、Maven が代わりに行うことができます

于 2012-08-16T17:29:47.830 に答える