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 프로젝트에서 외부 종속성을 지정할 수 있기를 바랍니다.