Maven-外部依存関係

ご存知のように、Mavenはリポジトリの概念を使用して依存関係の管理を行います。しかし、リモートリポジトリと中央リポジトリのいずれでも依存関係が利用できない場合はどうなりますか?Mavenは、次の概念を使用して、このようなシナリオに対する回答を提供します。External Dependency

たとえば、「Javaプロジェクトの作成」の章で作成したプロジェクトに次の変更を加えましょう。

  • 追加 lib srcフォルダーへのフォルダー。

  • jarをlibフォルダーにコピーします。使用しましたldapjdk.jar、LDAP操作用のヘルパーライブラリです。

これで、プロジェクト構造は次のようになります。

ここでは、プロジェクトに固有の独自のライブラリがあります。これは通常のケースであり、jarが含まれています。これは、Mavenがダウンロードするリポジトリで利用できない場合があります。コードがこのライブラリをMavenで使用している場合、コンパイルフェーズ中にこのライブラリをダウンロードまたは参照できないため、Mavenビルドは失敗します。

この状況に対処するために、この外部依存関係をMavenに追加しましょう pom.xml 次の方法を使用します。

<project xmlns = "http://maven.apache.org/POM/4.0.0" 
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
   http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.companyname.bank</groupId>
   <artifactId>consumerBanking</artifactId>
   <packaging>jar</packaging>
   <version>1.0-SNAPSHOT</version>
   <name>consumerBanking</name>
   <url>http://maven.apache.org</url>

   <dependencies>
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>3.8.1</version>
         <scope>test</scope>
      </dependency>

      <dependency>
         <groupId>ldapjdk</groupId>
         <artifactId>ldapjdk</artifactId>
         <scope>system</scope>
         <version>1.0</version>
         <systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath>
      </dependency>
   </dependencies>

</project>

上記の例の依存関係の下にある2番目の依存関係要素を見てください。これにより、次の主要な概念が明確になります。 External Dependency

  • 外部依存関係(ライブラリjarの場所)は、他の依存関係と同じ方法でpom.xmlで構成できます。

  • ライブラリーの名前と同じgroupIdを指定してください。

  • ライブラリの名前と同じartifactIdを指定します。

  • スコープをシステムとして指定します。

  • プロジェクトの場所を基準にしたシステムパスを指定します。

これで、外部の依存関係が明確になり、Mavenプロジェクトで外部の依存関係を指定できるようになります。