Spring boot 프로젝트 import 시 oracle depency 에러

6,656 views
Skip to first unread message

kyungsuk cho

unread,
May 22, 2016, 10:56:06 PM5/22/16
to Korea Spring User Group Q&A
안녕하세요 질문이 있어 올려봅니다!

spring boot 로 프로젝트를 진행중입니다.
저 혼자 개발하다가 최근 팀원들 개발환경 셋팅하고, 
개발한 프로젝트를 공유해주었는데 
이상하게 팀원들 pc에서 프로젝트를 import 하면
늘 pom.xml에서 oracle depency 에서 'missing artifact' 오류가 발생합니다.

repository 정보나 디펜던시 정보는 저와 완전히 동일합니다.(소스가 같으니까요)

<repository>
        <id>mesir-repo</id>
        </repository>

<dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc14</artifactId>
        <version>10.2.0.4.0</version>
        </dependency>


프로젝트 우클릭 > maven > download sources and doc 이후 update project 해도 마찬가지입니다. 
프로젝트 클릭, 리프레시, 이클립스 껐다 켰다 해도.. 모두다 마찬가지고요 ㅜㅜ 
pom.xml 에서 oracle 정보를 아예 다 삭제했다가 다시 넣어도 마찬가지 에러입니다..
대체 왜이럴까요?ㅜㅜ 조언을 구합니다 ㅜㅜ

KwonNam Son

unread,
May 23, 2016, 3:50:57 AM5/23/16
to ks...@googlegroups.com
해당 Maven 리포지토리에 ojdbc14 가 없는게 아닐까요? 원래 있었는데 삭제되었을 수도 있습니다.

oracle JDBC 드라이버는 상용이라 그런데 안 올릴텐데요.
그냥 local 파일로 소스 트리에 함께 올리고 local 의존성을 걸어주면됩니다.(Maven 에서 local 의존성을 뭐라고 하는지 모르겠네요... 아무튼 리포지토리에 두는게 아니라 소스 파일들과 함께 두는 방식이 있습니다)

아마 본인이 되는 것은 본인  $HOME/.m2/repository 에 이미 받아져 있기 때문일겁니다. ~/.m2/repository 삭제하고 다시 해보면 안될것 같네요.

그리고 회사에서 할 때는 외부 Maven Repository에 직접 접속하기 보다는 Nexus, Artifactory를 통해 프록시를 하는것이 좋습니다. 그런 상황이 되면 중ᅟ앙 오픈 리포지토리에 없는 의존성을 회사 리포지토리에 올려서 사용할 수 있고, 캐시도 돼서 속도도 빨라져서 좋습니다.


2016년 5월 23일 오전 11:56, kyungsuk cho <kni...@gmail.com>님이 작성:

--
이 메일은 Google 그룹스 'Korea Spring User Group Q&A' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+uns...@googlegroups.com에 이메일을 보내세요.
https://groups.google.com/group/ksug에서 이 그룹을 방문하세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/ksug/01161106-f654-4c0d-b05e-2403259b2290%40googlegroups.com을(를) 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/d/optout을(를) 방문하세요.



--
* 까먹지말자! http://kwon37xi.egloos.com

SeungChul Lee

unread,
May 23, 2016, 9:37:46 PM5/23/16
to Korea Spring User Group Q&A
권남님께서 설명하셨는데요.
좀 더 부연 설명을 드리자면....

위에 repository 선언하신 곳은 현재 운영되지 않는 곳입니다.
기존에 운영되던 시기에 아마도 maven의 local repository로 해당 라이브러리가 다운로드된 후 
지금까지 local repository의 라이브러리를 사용하셨던 것으로 보이네요.

ojdbc는 공식적으로 maven repository에 등록된 것이 없는 것으로 알고 있습니다.


MVN Repository에 검색하니 나오기는 하는데 release date 정보도 없고 ojdbc 버전에 없는 
14라는 버전이라 믿기는 어려워 보이지만 post에 적으신 dependency 선언으로 볼 때는 동일한 
라이브러리인 것으로 보입니다.

위 라이브러리를 사용하시고자 하시면 정의하신 dependency를 아래와 같이 변경하시면 될 듯 합니다.

<dependency>
    <groupId>ojdbc</groupId>
    <artifactId>ojdbc</artifactId>
    <version>14</version>
</dependency>

-------------------------------------------------------------------------------

혹시 오라클이 배포하는 ojdbc를 사용하시고자 한다면 아래의 설명을 따르시면 됩니다.


위 url이 ojdbc가 배포되는 오라클 페이지 입니다.
여기서 ojdbc를 다운로드 하시고 프로젝트의 아래 경로에 넣으세요.

{project-root}/src/main/webapp/WEB-INF/lib/ojdbc7.jar

아마도 위와 같은 경로가 될 것 같구요. pom.xml에 아래와 같이 입력하세요.

<dependency>
    <groupId>oracle.jdbc</groupId>
    <artifactId>OracleDriver</artifactId>
    <version>12.1.0.2.0</version>
    <scope>system</scope>
    <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc7.jar</systemPath>
</dependency>

위와 같이 설정하시면 로컬 라이브러리를 maven에서 dependency로 관리하게 됩니다.




2016년 5월 23일 월요일 오전 11시 56분 6초 UTC+9, kyungsuk cho 님의 말:
Reply all
Reply to author
Forward
0 new messages