リポジトリから取得していないjarファイルがいくつかあります。これらのjarファイルはsrcディレクトリのWEB-INF\libフォルダにあります。 jarファイルの実際のパスを指定せずにこれらをPOMの依存関係として追加する方法はありますか(相対パスで問題ありません)?
依存関係は次のように定義できます。
<dependency>
<groupId>my.group</groupId>
<artifactId>my.artifact</artifactId>
<version>a.b</version>
<scope>system</scope>
<systemPath>${basedir}/WEB-INF/lib/my.artifact.jar</systemPath>
</dependency>
基本的に、スコープを<system>
として指定して、リポジトリでこれを検索しないようにMavenに示し、<systemPath>
としてそれがどこにあるかを示します。これは絶対的なパスですが、Mavenのプロパティを取ることができます。詳細 ここ 。
あなたはあなたが持っているそのような瓶ごとにこれをするでしょう。
これらのファイルをローカルリポジトリにインストールする必要があります。理想的には、ローカルマシンまたはリモートサーバー(Nexus、Artifactory、Archiva)に共有リポジトリをインストールし、そのリポジトリにjarをデプロイします。
ファイルをローカルにインストールするには、次のコマンドを使用できます(MavenインストールプラグインのWebサイトから取得)。
mvn install:install-file -Dfile=your-artifact-1.0.jar \
[-DpomFile=your-pom.xml] \
[-Dsources=src.jar] \
[-Djavadoc=apidocs.jar] \
[-DgroupId=org.some.group] \
[-DartifactId=your-artifact] \
[-Dversion=1.0] \
[-Dpackaging=jar] \
[-Dclassifier=sources] \
[-DgeneratePom=true] \
[-DcreateChecksum=true]
その後、pomで、これらのjarを通常の依存関係として参照できます。 Mavenインストールプラグインの詳細については、 ウェブサイト をご覧ください。
mvn dependency:copy-dependencies
と、推移性を含むすべての依存関係で満たされたtarget/dependencies
フォルダーがあります。mvn dependency:purge-local-repository
を使用して再試行してください。Eclipseの使用:
Guillaumeが正しく指摘しているように、jarをローカル/企業リポジトリにインストールするだけです。
何らかの理由でそれが不可能な場合は、${basedir}
property を使用してください
$ {project.baseuri}を使用してプロジェクトのパスを取得し、そこからWEB_INF/libディレクトリに移動できます。 このページ pomでアクセスできるプロパティのリストがあります。