2

プロジェクトの依存関係として指定せずに、derbytools などの特定のパッケージを Maven でインストールするにはどうすればよいですか?

4

2 に答える 2

4

mvn installこれは、ゴールを使用したサンプルです。提供する必要があるパラメーターの代わりに、Windows スタイルの環境変数を使用しました。

mvn install:install-file -DgroupId=%DERBYTOOLS_GROUP_ID% \ 
    -DartifactId=%DERBYTOOLS_ARTIFACT_ID% \
    -Dversion=%DERBYTOOLS_VERSION% \
    -Dpackaging=jar \
    -Dfile=%DERBYTOOLS_FILE_PATH%
于 2008-11-17T17:49:22.097 に答える
1

Maven で jar を使用できるようにするには、jar を依存関係として宣言する必要があります。

Maven リポジトリにまだ存在しない jar がある場合は、install-plugin のinstall-file ゴールを使用してローカル リポジトリにインストールできます(rich's answer が示すように)。これにより、指定した値を使用して pom が生成され、pom と jar がローカル リポジトリにインストールされます。それが完了したら、依存関係をプロジェクトの pom に追加し、通常どおり使用します。

この場合、依存関係は中央の Maven リポジトリに存在するため ( Sonatype パブリック リポジトリを使用してアーティファクトを検索するだけで済みます)、この依存関係を POM に追加するだけです。

<dependency>
  <groupId>org.apache.derby</groupId>
  <artifactId>derbytools</artifactId>
  <version>10.4.2.0</version>
</dependency>

なんらかの理由で依存関係をインストールしたくない場合は、systemスコープを使用して絶対ファイル システム パスで jar を参照することもできます。ただし、移植性に明らかに影響するため、このアプローチはお勧めしません。

ドキュメントから:

スコープ システムとの依存関係は常に利用可能であり、リポジトリで検索されません。これらは通常、JDK または VM によって提供される依存関係について Maven に通知するために使用されます。

次のように、derbytools jar をシステム スコープの依存関係として参照できます。

<dependency>
  <groupId>org.apache.derby</groupId>
  <artifactId>derbytools</artifactId>
  <version>10.4.2.0</version>
  <scope>system</scope>
  <systemPath>/path/to/derbytools.jar</systemPath>
</dependency>
于 2009-09-19T23:11:41.763 に答える