
SOFTMOA TECHNOLOGY
maven jar 추가하기
소프트모아가 정리한 기술 기록입니다.
Contents
작성일 2017. 10. 12.
Maven에 외부 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 (최후 수단)
Share this
Database
Showing 1 to 10 of 88 entries
