Maven-외부 종속성

아시다시피 Maven은 Repositories 개념을 사용하여 종속성 관리를 수행합니다. 그러나 원격 저장소 및 중앙 저장소에서 종속성을 사용할 수 없으면 어떻게됩니까? Maven은 개념을 사용하여 이러한 시나리오에 대한 답변을 제공합니다.External Dependency.

예를 들어, 'Creating Java Project'장에서 생성 한 프로젝트를 다음과 같이 변경해 보겠습니다.

  • 더하다 lib 폴더를 src 폴더에 추가합니다.

  • 모든 jar를 lib 폴더에 복사하십시오. 우리는 사용했습니다ldapjdk.jar, 이는 LDAP 작업을위한 도우미 라이브러리입니다.

이제 프로젝트 구조는 다음과 같아야합니다.

여기에는 프로젝트에 특정한 고유 라이브러리가 있으며 이는 일반적인 경우이며 maven에서 다운로드 할 수있는 저장소에서 사용할 수없는 jar가 포함되어 있습니다. 코드가 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>

위의 예에서 종속성 아래에있는 두 번째 종속성 요소를 살펴보면 다음과 같은 주요 개념이 지워집니다. External Dependency.

  • 외부 종속성 (라이브러리 jar 위치)은 다른 종속성과 동일한 방식으로 pom.xml에서 구성 할 수 있습니다.

  • 라이브러리 이름과 동일한 groupId를 지정하십시오.

  • 라이브러리 이름과 동일한 artifactId를 지정하십시오.

  • 범위를 시스템으로 지정하십시오.

  • 프로젝트 위치에 상대적인 시스템 경로를 지정합니다.

이제 외부 종속성에 대해 명확하고 Maven 프로젝트에서 외부 종속성을 지정할 수 있기를 바랍니다.