Contents
see ListMaven에 외부 JAR 추가하기
Maven 중앙 저장소에 없는 JAR 파일을 프로젝트에 추가하는 방법입니다. 상용 라이브러리나 사내 라이브러리를 사용할 때 필요합니다.
언제 사용하나요?
- 오라클 JDBC 드라이버 등 라이선스 문제로 중앙 저장소에 없는 JAR
- 사내에서 개발한 공통 라이브러리
- 서드파티 벤더가 제공한 SDK
- 오래된 버전의 라이브러리
방법 1: 로컬 저장소에 설치 (권장)
# JAR을 로컬 Maven 저장소에 설치
mvn install:install-file
-Dfile=ojdbc8.jar
-DgroupId=com.oracle.database.jdbc
-DartifactId=ojdbc8
-Dversion=21.1.0.0
-Dpackaging=jar
# pom.xml에 의존성 추가
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.1.0.0</version>
</dependency>
방법 2: 시스템 스코프 (비권장)
<!-- 프로젝트 내 lib 폴더에 JAR 위치 -->
<dependency>
<groupId>com.example</groupId>
<artifactId>custom-lib</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/custom-lib.jar</systemPath>
</dependency>
<!-- 주의: 빌드 시 WAR에 포함 안됨 -->
<!-- 추가 설정 필요 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/lib</directory>
<targetPath>WEB-INF/lib</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
방법 3: 프로젝트 내 로컬 저장소
<!-- 프로젝트 내 저장소 정의 -->
<repositories>
<repository>
<id>local-repo</id>
<url>file://${project.basedir}/lib</url>
</repository>
</repositories>
<!-- lib 폴더 구조:
lib/
└── com/
└── example/
└── custom-lib/
└── 1.0/
├── custom-lib-1.0.jar
└── custom-lib-1.0.pom
-->
<dependency>
<groupId>com.example</groupId>
<artifactId>custom-lib</artifactId>
<version>1.0</version>
</dependency>
방법 4: Nexus/Artifactory 사내 저장소
<!-- settings.xml에 저장소 추가 -->
<servers>
<server>
<id>company-repo</id>
<username>deploy</username>
<password>password</password>
</server>
</servers>
<!-- pom.xml에 저장소 정의 -->
<repositories>
<repository>
<id>company-repo</id>
<url>https://nexus.company.com/repository/maven-releases/</url>
</repository>
</repositories>
<!-- JAR 배포 -->
mvn deploy:deploy-file
-Dfile=custom-lib.jar
-DrepositoryId=company-repo
-Durl=https://nexus.company.com/repository/maven-releases/
-DgroupId=com.company
-DartifactId=custom-lib
-Dversion=1.0
오라클 드라이버 특별 케이스
<!-- Oracle 19c 이후 Maven Central에서 제공 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.1.0.0</version>
</dependency>
<!-- 오래된 버전은 수동 설치 필요 -->
mvn install:install-file
-Dfile=ojdbc6.jar
-DgroupId=com.oracle
-DartifactId=ojdbc6
-Dversion=11.2.0.4
-Dpackaging=jar
소스/Javadoc과 함께 설치
mvn install:install-file
-Dfile=library.jar
-Dsources=library-sources.jar
-Djavadoc=library-javadoc.jar
-DgroupId=com.example
-DartifactId=library
-Dversion=1.0
-Dpackaging=jar
설치 확인
# 로컬 저장소 확인
ls ~/.m2/repository/com/example/custom-lib/1.0/
# 의존성 트리 확인
mvn dependency:tree
권장 순서
- Maven Central에서 검색
- 사내 Nexus/Artifactory 사용
- 로컬 저장소 설치
- system scope (최후 수단)