본문 바로가기
DevOps/Tools

[Maven] 이클립스에서 로컬 메이븐 저장소에 ojdbc.jar 파일을 등록해 바로 사용하기

by breezyday 2022. 6. 19.

이클립스에서 매번 오라클 ojdbc 설정을 system ,<scope>로 설정하고 실행을 위해 추가로 설정 작업을 하는 것이 은근히 불편했습니다. pom.xml 파일에 경고가 뜨는 것도 마음에 들지 않았습니다.

 

가장 불편한 점은 컴파일과 실행이 별도로 동작하면서 ojdbc.jar 파일을 프로젝트에 /WEB-INF/lib 폴더를 만들어서 계속 복사해주는 것과 같은 별도의 작업이 필요합니다. 다른 라이브러리들은 편리하게 Maven에서 가져올 수 있도록 되어 있는데, ojdbc.jar는 라이선스 문제로 직접 메이븐에서 지원하지 못하는 상황입니다. 

 

한 가지 해결 방법은 oracle에서 ojdbc.jar 파일을 다운로드한 다음, 자신의 로컬 Maven Repository에 등록해서 사용하는 방법입니다. 자동 업데이트는 안되지만 Maven Dependency 등록 시에 다른 Depedency 설정과 동일하게 적어주면 Maven을 참조하기 때문에 컴파일뿐만 아니라 실행도 같이 되어 ojdbc.jar 파일을 복사해줄 필요가 없게 됩니다.

 

1. Maven 설치, ojdbc.jar 파일 다운로드

1.1 ojdbc.jar 파일 다운로드

https://dev-handbook.tistory.com/43

 

[java] Oracle 버전 별 JDBC Driver 다운로드 및 호환성 확인

벌써 부터 쓸데없는(?) 걱정이 생겨서 찾아봤습니다. 별 것 아니라고 생각되기도 하지만 늘 소프트웨어의 버전과 호환성은 어느날 갑자기 개발자를 괴롭히는 적입니다. Oracle을 사용한 지도 제법

dev-handbook.tistory.com

 

별도의 포스팅으로 JDBC 드라이버의 다운로드와 호환성에 대해 정리한 포스팅입니다. 

간단하게 JDBC Driver만 받고 싶다면 아래 링크에서 다운로드할 수 있습니다.

 

https://www.oracle.com/kr/database/technologies/appdev/jdbc-downloads.html

 

1.2 Maven 설치

이클립스에서 Maven 플러그인(?)을 사용할 수 있도록 되어 있습니다만...

Maven 실행 파일을 찾을 수 없었습니다. 만약 알고 있다면 굳이 설치하지 않아도 됩니다만...

 

쉽게 찾을 수 없어서 Maven을 설치했습니다.

 

Maven 설치는 별도의 포스팅으로 작성했습니다.

간단하긴 하지만 설정이 익숙하지 않다면 한 번 살펴보시길 바랍니다.

 

https://dev-handbook.tistory.com/64

 

[Maven] 아파치 메이븐 다운로드 및 설치 하기, Apache Maven Downlaod ans Install

이클립스에서 기본 설정과 확장 프로그램으로 메이븐을 사용할 경우 메이븐 실행 파일을 다운로드하지 않고 사용할 수 있습니다. 그러나 사용자 정의 환경을 구축하기 위해서는 아파치 메이븐

dev-handbook.tistory.com

 

2. 이클립스에서 Maven 정보 확인

2.1 Maven 사용자 설정

 

Windows > Prefereces 메뉴를 통해 이클립스 설정 화면으로 들어가서, Maven을 검색합니다.

Maven이 포함된 버전의 이클립스라면 설정에서 Maven을 찾을 수 있습니다.

 

그중 User Settings 부분을 보면 저장소(Local Repository) 위치와 설정 파일(User Settings) 위치를 확인할 수 있습니다.

만약 별도의 설정을 통해 변경하였다면 이클립스와 연동을 위해서 이 부분의 설정을 변경해 주면 됩니다. 

 

Maven을 설치했다면 아래와 같이 실행환경을 등록하여 사용할 수 있습니다만.

버전도 동일하고 해서 기존 Maven 설정을 변경하지 않고,  jar 파일 등록에만 사용하였습니다. 

 

등록 전

 

등록 후

 

이렇게 등록해서 Maven을 자신이 설치한 Maven 실행 파일로 변경할 수 있습니다만 저는 변경하지 않았습니다.

 

3. Maven을 사용하여 ojdbc 파일 등록

다운로드 한 jar 파일을 등록하는 방법은 비교적 간단합니다.

Maven의 명령어를 이용하여 등록해주면 됩니다. 

3.1 ojdbc8.jar 파일 등록하기

저는 현재 ojdbc8.jar 파일을 주로 사용하고 있어서 이 파일을 등록했습니다.

등록을 위해서는 windows cmd 창에서 maven 명령어를 사용합니다.

 

mvn install:install-file -Dfile=C:\app\mono\product\18.0.0\jdbc\ojdbc8.jar -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=21.5 -Dpackaging=jar -DgeneratePom=true

 

위의 명령어를 실행하면 등록할 수 있습니다. 

 

명령어를 좀 더 자세히 풀어보면 다음과 같습니다. 

 

mvn install:install-file                            // maven install 명령
 -Dfile=C:\app\mono\product\18.0.0\jdbc\ojdbc8.jar  // 설치할 파일(전체 경로 지정)
 
 -DgroupId=com.oracle      // Dependency에서 사용할 groupId 
 -DartifactId=ojdbc8       // Dependency에서 사용할 artifactId
 -Dversion=21.5            // Dependency에서 사용할 version
 -Dpackaging=jar           // 압축파일 종류
 -DgeneratePom=true        // pom 생성 여부 지정

 

 

처음 설치를 시도할 경우 관련 파일들을 다운로드하습니다만 이후에는 바로 실행하여 등록할 수 있습니다.

 

 

만났던 오류들

저는 처음 명령을 실행 시 pom 파일이 없다고 나오면서 실행이 되지 않았습니다. 그래서 찾은 옵션인 '-DgeneratePom=true'을 사용하였습니다. 그래도 계속 오류가 나서 '-Dfile=[파일명]'전체 경로를 지정하여 시도하여 성공했습니다.

 

그런데 첫 번째 등록이 성공한 다음 혹시나 하고 경로를 변경해봤는데 상대 경로도 가능하고, jar 파일이 있는 폴더라면 파일명만 주어도 등록이 되었습니다. 

 

정확하게 원인을 알 수 없지만 만약 등록 시 에러가 발생한다면 파일명에 전체 경로 그리고 폼 생성 옵션을 추가해서 시도해보시기 바랍니다.

 

3.2. ojdbc.jar 등록 확인

 

처음에 확인한 maven repository 아래에 groupIdartifactId 그리고 version을 설정한 대로 폴더가 생성되고 파일도 만들어졌습니다. 

 

 

테스트하면서 한 번 더 동일한 파일로 경로만 수정하여 등록을 시도했고, 이번에도 성공적으로 등록되었습니다.

 

 

추가 작업 덕분인지 lastUpdated 관련 파일이 생성이 되어 있었습니다.

참조할 파일명은 추가한 이름에 따라 변경되어 저장됩니다. ojdbc8.jar 파일 ojdbc8-21.5.jar로 변경되었습니다.

 

 

4. 이클립스에서 Maven 설정 방법

4.1 pom.xml 파일 수정

수정 전

pom.xml 파일의 ojdbc.jar 설정은 <scope>에 system으로 설정되어 있고 <systemPath>에 파일의 실제 경로를 적어줍니다.

 

Maven Depedencis에서 확인해보면 파일의 위치가 다른 Maven 경로는 Repository를 참조하고 있지만 ojdbc8.jar 만 다른 곳을 참조하고 있는 것을 확인할 수 있습니다.

 

이런 설정인 경우 tomcat 실행 시 jar파일을 찾지 못하게 되므로 WEB-INF/lib 폴더ojdbc8.jar를 추가해주어야만 실행이 됩니다.

 

수정 후

pom.xml 파일의 설정 부분이 다른 것들과 동일하게 설정할 수 있으며 <scope> 태그를 지정하지 않았습니다.

<scope> 태그를 지정하지 않은 경우 기본값으로 컴파일 및 실행환경에서 모두 사용하도록 설정이 됩니다.

 

 

Maven Depedencis에서 확인해보면 다른 파일들과 동일하게 Maven Repository 경로에서 참조하는 것을 확인할 수 있습니다. 파일명은 앞에서도 설명했지만 Maven Local Repository에 등록할 때 생성된 이름(ojdbc8-21.5.jar)으로 확인이 됩니다. 그리고 이렇게 설정이 되면 별도로 ojdbc8.jar 파일을 WEB-INF/lib 폴더에 옮겨주지 않아도 실행에 문제가 없습니다.

 

 

 

 

댓글