Oracle JDBC ojdbc6 Jar를 Maven 종속성으로 사용


103

Maven이 ojdbc6.jar 파일을 내 프로젝트의 war 파일에 번들로 넣을 수없는 것 같습니다. Hibernate 도구에 대한 종속성을 직접 지정할 때 POM 파일 내에서 작동합니다. 그러나 프로젝트의 war 파일과 함께 번들로 제공되지 않으므로 내 프로젝트가 Tomcat에서 실행되지 않습니다.

여기에이 질문에 대해 지정된 솔루션을 포함하여 인터넷에서 찾을 수있는 모든 솔루션을 시도했습니다.

Maven 저장소에서 Oracle JDBC 드라이버 찾기

가장 최근에는 다음을 수행했습니다.

  1. 내 컴퓨터에 jar 파일 다운로드

  2. 다음 명령을 실행하여 jar를 로컬 저장소에 설치합니다.

    mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=ojdbc6.jar -DgeneratePom=true

    (저도 그 명령의 모든 종류의 변형을 시도했습니다.)

  3. 마지막으로 종속성을 내 pom 파일에 넣습니다.

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>
    
  4. 깨끗한 빌드를 실행했지만 실패합니다.

    mvn -U clean package
    
    [INFO] Scanning for projects...
    [INFO]                                                                         
    [INFO] ------------------------------------------------------------------------
    [INFO] Building jazztwo 0.0.1
    [INFO] ------------------------------------------------------------------------
    Downloading: http://repo1.maven.org/maven2/com/oracle/ojdbc6/11.2.0.3/ojdbc6-11.2.0.3.jar
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 0.700s
    [INFO] Finished at: Tue Mar 27 15:06:14 PDT 2012
    [INFO] Final Memory: 3M/81M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal on project jazztwo: Could not resolve dependencies for project edu.berkeley:jazztwo:war:0.0.1: Could not find artifact com.oracle:ojdbc6:jar:11.2.0.3 in central (http://repo1.maven.org/maven2) -> [Help 1]
    

왜 이것이 작동하지 않습니까? 고가의 컴퓨터 부품을 방안에 던질 준비가되었습니다. 이것은 너무 많은 시간을 낭비했습니다. (감사합니다, 오라클. 다시 얼마를 지불 했습니까?)

내가 Mac을 사용하기 때문일까요?


6
ojdbc6-11.2.0.3.jar올바른 폴더의 로컬 저장소에서 파일 을 사용할 수 있는지 확인할 수 있습니까 ?
라구 람

1
jar 파일이 저장소에 복사되지 않는 것 같습니다. 그것을 참조하는 것처럼 보이는 파일들. 파일을 정확하게 호출해야합니까? 내 lib 디렉토리의 ojdbc6.jar입니다.
Marvo

15
흠! 그래서 mvn install:install-file작동하지 않았습니다. 절대 위치를 제공 ojdbc6.jar하거나 포함 된 폴더에서 명령을 실행 해야 합니다. 파일 이름은 문제가되지 않습니다. -X정보를 디버그 할 수 있도록 플래그로 실행할 수 있습니다.
Raghuram

실행할 때 출력이 install-file있습니까? Maven은 파일이 설치된 위치 또는 오류가 있는지 여부를 알려줍니다.
nwinkler

1
관련없는 메모 : 저장소 미러 (Nexus, Artifactory, Archiva 등)를 사용하는 것이 좋습니다. 당신은 거기에 파일을 업로드 할 수 있고 그것은 당신뿐만 아니라 같은 미러를 사용하는 다른 모든 사람들도 사용할 수 있습니다.
nwinkler

답변:


136

로컬 저장소에 설치하는 대신 프로젝트에 새 Maven 저장소 (가급적이면 자체 아티 팩토리 사용)를 추가하는 것이 좋습니다.

Maven 구문 :

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>
</dependency>
... 
<repositories>
    <repository>
      <id>codelds</id>
      <url>https://code.lds.org/nexus/content/groups/main-repo</url>
    </repository>
  </repositories>

Grails 예 :

mavenRepo "https://code.lds.org/nexus/content/groups/main-repo"
build 'com.oracle:ojdbc6:11.2.0.3'

3
궁극적으로 우리가 한 일입니다. 여기에 저장소를 설정했으며 이제 모든 프로젝트에서이를 사용합니다. 그러나 두 가지를 모두 수행하는 방법을 아는 것이 유용하다고 생각합니다.
Marvo 2011

3
lds.org 저장소가 합법적입니까? 이 답변에 따르면 불법입니다 : stackoverflow.com/a/1074971/1415732
Alden

2
회사 저장소에 종속성을 설치하면 불법일까요? 아니면 공공 저장소 만 불법입니까? 라이브러리에 대한 공용 Maven 저장소가 없다는 것은 Oracle의 잘못입니다. 누군가가 자신의 저장소에서 해당 라이브러리를 공유하고 있다는 점에 감사드립니다 (계속 액세스 할 수 있음).
Ondrej Kvasnovsky

3
Ondrej : 제 생각에는 저장소가 공개 된 경우에만 불법입니다. 우리 회사는 귀하가 제안하는 방식으로 개인 maven repo (artifactory)에서 ojdbc를 호스팅합니다.
Ray Myers

3
물론 프로젝트에 임의의 저장소를 추가하는 것이 "더 좋습니다". 와우, 이것은 너무 많은 수준에서 잘못되었습니다
zb226

41

앞으로이 게시물을 읽는 모든 사람을 위해 jar가있는 디렉토리로 이동하지 않아도됩니다. 수행해야 할 작업은 다음과 같습니다.

maven 명령을 실행할 수있는 프로젝트 폴더로 이동합니다 (이 폴더에서 ls -ltr을 수행하면 pom.xml이 표시됩니다).

이 작업을 수행 -

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=<Path where the jar is, example downloads>/ojdbc6.jar -DgeneratePom=true

이 작업이 완료되면 다음과 같이 pom.xml에 종속성을 추가 할 수 있습니다.

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>

3
참고 :이 단계를 수행 한 후에도를 수행 할 때까지 Eclipse에서 동일한 오류가 발생했습니다 Maven > Update Project. 그런 다음 모든 것이 아름답게 작동했습니다. 이 단계는 분명 할 수 있지만 추가 할 것이라고 생각했습니다.
user12893298320392

2
... "안녕하세요 미래 독자 게시물"에 추가합니다. 이것은 powershell 실행에 실패했지만 일반 Windows CMD-shell을 실행하면 예상대로 작동했습니다. 당신을위한 powershell이 ​​없습니다!
phareim

창문에서이 일을하려는 사람들에게 파림의 조언은 금이다. 명령 프롬프트에 mvn 명령을 입력하여 maven 3.3.3을 실행하는 Windows 7에서이 작업을 수행했습니다. powershell에서 'pom not found'오류가 계속 발생했습니다.
Quest Monger

언급 된 순서는 중요합니다. 먼저 종속성을 추가 한 다음 mvn intsall 명령을 실행했는데 오류가 사라지지 않았습니다. 종속성을 제거하고 저장 한 다음 다시 추가하고 저장했습니다. 해결 된 모든 오류 (제공 프로젝트 "가 자동으로 빌드"세트 t입니다)
Kailas

24

내 원래 질문에 대한 의견 섹션에서 Raghuram이 정답을 제공했습니다.

어떤 이유로 든 "mvn install"을 물리적 ojdbc6.jar 파일의 전체 경로를 가리키는 것은 저에게 효과가 없었습니다. (또는 명령을 실행할 때 지속적으로 반복했지만 오류가 발생하지 않았습니다.)

내가 ojdb6.jar을 보관하는 디렉토리로 cd-ing하고 거기에서 명령을 실행하면 처음으로 작동했습니다.

Raghuram이이 질문에 대답하고 싶다면 대신 그의 대답을 받아 들일 것입니다. 모두 감사합니다!


1
감사합니다 @Raghuram 및 Marvo
스파이더

7
mvn install:install-file 
-Dfile=C:\Users\xxxx\Downloads\lib\ojdbc6.jar 
-DgroupId=com.oracle
-DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar

Spring 애플리케이션에서 ORACLE JAR 문제를 해결하려면

Oracle JDBC ojdbc6 Jar를 Maven 종속성으로 사용

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0</version>
    </dependency>`

Maven은 항상 추측하기 쉽지 않은 버전에 대해 매우 까다 롭습니다. 버전이 11.2.0.3이 아니라 11.2.0이라는 좋은 점은
Michael Shopsin

5

먼저 Oracle 사이트 (ojdbc.jar 버전 11.2.0.3)에서 특정 jar를 다운로드해야합니다.

C : \ filefolder에 다운로드하면

cmd 프롬프트에서 해당 디렉토리로 이동하여 아래 명령을 제공하면 종속성이 설치됩니다. 그런 다음 프로젝트를 빌드 할 수 있습니다.

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dpackaging=jar -Dversion=11.2.0.4.0 -Dfile=ojdbc6.jar -DgeneratePom=true

2

실행 후

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=ojdbc6.jar -DgeneratePom=true

.m2 저장소 폴더 (/com/oracle/ojdbc6/11.2.0.3)를 확인하여 ojdbc6.jar이 있는지 확인하십시오. $ M2_HOME / conf / settings.xml에서 maven 저장소 설정을 확인하지 않으면


2

아래 구성은 나를 위해 일했습니다. 자세한 내용은이 링크 를 참조하십시오.

<dependency>
 <groupId>com.oracle.jdbc</groupId>
 <artifactId>ojdbc7</artifactId>
 <version>12.1.0.2</version>
</dependency>

내가 질문 한 이후로 새로운 것입니다. 좋은!
Marvo

2

Oracle은 라이선스 제품이므로 직접 maven 종속성을 추가하는 데 문제가 있습니다. ojdbc.jar의 모든 버전을 추가하려면 두 단계 아래에서 수행 할 수 있습니다.

  1. 아래 명령을 실행하여 ojdbc.jar를 로컬 Maven 저장소에 설치하십시오.
/opt/apache-maven/bin/mvn install:install-file
    -Dfile=<path-to-file>/ojdbc7.jar
    -DgroupId=com.oracle
    -DartifactId=ojdbc7
    -Dversion=12.1.0.1.0
    -Dpackaging=jar

그러면 로컬 저장소에 종속성이 추가됩니다.

  1. 이제 pom 파일에 종속성을 추가하십시오.
<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>12.1.0.1.0</version>
</dependency>

1

나는 아래 명령을 따랐다.

mvn install:install-file -Dfile=E:\JAVA\Spring\ojdbc14-10.2.0.4.0.jar\ojdbc14-10.2.0.4.0.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar

설치 후 jar가 M2_repo에 올바르게 설치되었는지 확인하십시오.


1

버전 태그없이 종속성을 사용해 보았는데 잘 작동했습니다.

<dependency>
    <groupId>com.oracle.ojdbc</groupId>
    <artifactId>ojdbc8</artifactId>
</dependency>

0

pom.xml에 다음 종속성 추가

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>oracle</artifactId>
    <version>10.2.0.2.0</version>
</dependency>

0

C 드라이브-> 사용자-> PC 이름-> .m2 찾기로 이동하여 다운로드 한 ojdbc jar 파일을 여기에 붙여 넣으면 서버가 자동으로 선택합니다.


-1

Oracle JDBC 드라이버 및 기타 동반 Jar는 Central Maven에서 사용할 수 있습니다. 11.2.0.4, 12.2.0.2, 18.3.0.0, 19.3.0.0, 19.6.0.0 및 19.7.0.0의 공식 지원 Oracle JDBC 버전을 사용하는 것이 좋습니다. 이는 Central Maven Repository 에서 사용할 수 있습니다 . 자세한 내용은 Maven Central 가이드 를 참조하세요.

최신 버전을 사용하는 것이 좋습니다. JDK 호환성에 대한 FAQ 를 확인하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.