web-dev-qa-db-ja.com

POMのWEB-INF \ libにjarを追加する

リポジトリから取得していないjarファイルがいくつかあります。これらのjarファイルはsrcディレクトリのWEB-INF\libフォルダにあります。 jarファイルの実際のパスを指定せずにこれらをPOMの依存関係として追加する方法はありますか(相対パスで問題ありません)?

18
Punter Vicky

依存関係は次のように定義できます。

<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のプロパティを取ることができます。詳細 ここ

あなたはあなたが持っているそのような瓶ごとにこれをするでしょう。

20
Raghuram

これらのファイルをローカルリポジトリにインストールする必要があります。理想的には、ローカルマシンまたはリモートサーバー(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インストールプラグインの詳細については、 ウェブサイト をご覧ください。

4
Guillaume Polet

使用 Apache Maven依存関係プラグイン

  • mvn dependency:copy-dependenciesと、推移性を含むすべての依存関係で満たされたtarget/dependenciesフォルダーがあります。
  • 依存関係のダウンロード中に問題が発生した場合は、mvn dependency:purge-local-repositoryを使用して再試行してください。

Eclipseの使用:

  1. プロジェクトのプロパティを右クリックします。
  2. Deployment Assemblyオプションを選択します。
  3. 追加ボタンをクリックします。
  4. 次のようにJavaビルドパスエントリを選択します。

enter image description here

  1. 次へをクリックして、次のウィザードを取得します。
    enter image description here

  2. Maven Dependenciesを選択します。

  3. finishをクリックします。
3
Premraj

Guillaumeが正しく指摘しているように、jarをローカル/企業リポジトリにインストールするだけです。

何らかの理由でそれが不可能な場合は、${basedir}property を使用してください

1
Arnout Engelen

$ {project.baseuri}を使用してプロジェクトのパスを取得し、そこからWEB_INF/libディレクトリに移動できます。 このページ pomでアクセスできるプロパティのリストがあります。

1
Gaurav