Maven 저장소에서 Oracle JDBC 드라이버 찾기
oracle jdbc 드라이버를 의존관계(런타임 범위) - ojdbc14로 프로젝트에 추가합니다.MVNrepository 사이트에서 POM에 넣는 의존성은 다음과 같습니다.
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
물론 이것은 maven이 사용하는 중앙 저장소에 없기 때문에 작동하지 않습니다.2가지 질문:
이 아티팩트가 포함된 저장소(있는 경우)를 찾으려면 어떻게 해야 합니까?
어떻게 추가하면 메이븐이 사용할 수 있을까요?
이 아티팩트가 포함된 저장소(있는 경우)를 찾으려면 어떻게 해야 합니까?
안타깝게도 바이너리 라이선스로 인해 Oracle 드라이버 JAR을 사용하는 공용 저장소는 없습니다.이것은 많은 의존관계에서 발생하지만 Maven의 잘못은 아니다.JAR이 포함된 공용 저장소를 발견한 경우 해당 저장소가 불법임을 확인할 수 있습니다.
어떻게 추가하면 메이븐이 사용할 수 있을까요?
라이선스의 이유로 추가할 수 없는 JAR 중에는 Maven Central repo에 pom 엔트리가 있는 것도 있습니다.확인해 주세요.벤더가 선호하는 Maven 정보가 포함되어 있습니다.
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
파일 다운로드 URL(이 경우 http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html)을 지정합니다.
JAR을 다운로드한 후 (POM에서 groupId, artifictId 및 버전을 가져온 것에 주의)를 사용하여 컴퓨터 저장소에 추가합니다.
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 \
-Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar -DgeneratePom=true
POM을 생성하기 위한 마지막 파라미터를 사용하면 pom.xml 경고로부터 보호됩니다.
팀에 로컬 Maven 저장소가 있는 경우 이 가이드가 JAR을 업로드하는 데 도움이 될 수 있습니다.
어떤 이유로든, 저는 위의 어떤 해결책도 제대로 작동하지 않았습니다. (아직도 할 수 없습니다.
대신 프로젝트(블치)에 jar를 포함시킨 후 jar에 대한 경로를 나타내는 "시스템" 종속성을 만들었습니다.올바른 방법은 아닐 수도 있지만, 효과가 있습니다.또한 팀의 다른 개발자(또는 빌드 서버 셋업 담당자)가 로컬 저장소에 jar를 저장할 필요가 없습니다.
업데이트: 이 솔루션은 휴지 상태 도구를 실행할 때 사용할 수 있습니다.그러나 WAR 파일 작성에는 효과가 없는 것 같습니다.타겟 WAR 파일에는 ojdbc6.jar 파일이 포함되어 있지 않습니다.
1) 프로젝트의 루트에 「lib」라고 하는 디렉토리를 작성합니다.
2) ojdbc6.jar 파일을 복사합니다(항아리가 호출된 경우).
3) 다음과 같은 의존관계를 작성합니다.
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc</artifactId>
<version>14</version>
<scope>system</scope>
<systemPath>${basedir}/lib/ojdbc6.jar</systemPath> <!-- must match file name -->
</dependency>
못생겼지만 나한테는 통하지
전쟁 파일에 파일을 포함하려면 다음 항목을 폼에 추가합니다.
<build>
<finalName>MyAppName</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${basedir}/src/main/java</directory>
<targetPath>WEB-INF/classes</targetPath>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.css</include>
<include>**/*.html</include>
</includes>
</resource>
<resource>
<directory>${basedir}/lib</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
Oracle JDBC Driver는 이제 Central이 아닌 Oracle Maven Repository에서 사용할 수 있습니다.
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>
Oracle Maven Repository에는 사용자 등록이 필요합니다.순서는, 다음의 URL 에 있습니다.
업데이트 2019-10-03
Spring Boot에서 Maven Central의 Oracle JDBC Driver를 사용하고 있습니다.
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc10</artifactId>
<version>19.3.0.0</version>
</dependency>
Gradle 사용자의 경우:
implementation 'com.oracle.ojdbc:ojdbc10:19.3.0.0'
사용자 등록은 필요 없습니다.
업데이트 2020-03-02
현재 Oracle은 com.oracle.database 그룹 ID로 드라이버를 퍼블리시하고 있습니다.자세한 내용은 Anthony Accioly의 답변을 참조하십시오.고마워요 앤서니
JDK6, JDK7, JDK8과 호환되는 Oracle JDBC 드라이버
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
JDK8, JDK9 및 JDK11과 호환되는 Oracle JDBC 드라이버
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
JDK10 및 JDK11과 호환되는 Oracle JDBC 드라이버
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc10</artifactId>
<version>19.3.0.0</version>
</dependency>
를 다운로드하여 에 합니다.src/lib
maven instra 제raven ravenrarara venrara rara rararara rara
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>install-oracle-jdbc</id>
<goals>
<goal>install-file</goal>
</goals>
<phase>clean</phase>
<configuration>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
<createChecksum>true</createChecksum>
<file>${project.basedir}/src/lib/ojdbc6.jar</file>
</configuration>
</execution>
</executions>
</plugin>
실행만 .mvn clean
됩니다.
Oracle은 현재 maven.oracle.com에서 maven 저장소를 공개하고 있습니다. 단, 인증이 필요합니다.
https://blogs.oracle.com/WebLogicServer/entry/weblogic_server_and_the_oracle 를 참조해 주세요.
블로그 투고의 코멘트에 의하면, ojdbc 드라이버는 다음의 좌표로 입수할 수 있습니다.
<groupId>com.oracle.weblogic</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.3-0-0</version>
<packaging>jar</packaging>
사용 방법:
<repositories>
<!-- Repository for ORACLE ojdbc6. -->
<repository>
<id>codelds</id>
<url>https://code.lds.org/nexus/content/groups/main-repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency>
</dependencies>
1. 이 아티팩트가 포함된 저장소를 찾으려면 어떻게 해야 합니까?
DavidS가 제가 답변할 때 인용한 라인은 현재 (지금 작성 중인) OTN 라이센스 계약서에 존재하지 않는다고 언급했기 때문에 제가 링크한 OTN 라이센스 계약서에 기재되어 있지 않습니다.이 답변은 10.2.0.3.0과 같은 이전 버전의 아티팩트에 대해서만 고려하십시오.
모든 Oracle Database JDBC 드라이버는 OTN 라이센스 계약에 따라 배포됩니다.
OTN 라이센스 계약을 읽으면 다음 라이센스 조항이 있습니다.
사용할 수 없습니다.
되지 않는 한 - 어플리케이션과 함께하지 않는 한 배포합니다.
그렇기 때문에 드라이버 항아리는 공개 Maven Repository에서 찾을 수 없습니다.왜냐하면 단독으로 배포되기 때문에 라이선스 위반이 되기 때문입니다.
종속성 추가:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
이후 에게 (Maven) Maven을 .ojdbc14-10.2.0.3.0.pom
수 .
...
<licenses>
<license>
<name>Oracle Technology Network Development and Distribution License Terms</name>
<url>http://www.oracle.com/technology/software/htdocs/distlic.html</url>
</license>
</licenses>
...
OTN 라이선스에 대해 알려줍니다.
2. 어떻게 추가하면 Maven이 사용할 수 있습니까?
위의 의존관계가 작동하도록 하기 위해 저는 여기서 수동으로 로컬 Maven 저장소에 jar를 설치할 것을 제안했던 victor hugo에 동의합니다..m2
디렉토리)를 실행합니다.
mvn install:install-file -Dfile={Path_to_your_ojdbc.jar} -DgroupId=com.oracle
-DartifactId=ojdbc -Dversion=10.2.0.3.0 -Dpackaging=jar
하지만 위의 라이센스 조항은 JDBC jar를 찾을 수 없는 곳뿐만 아니라 설치 장소도 제한한다는 것을 덧붙이고 싶습니다.
실제로 로컬 Maven 저장소는 비공개로 공유되지 않아야 합니다. 공유될 경우 로컬 영역 네트워크에 있는 소수의 사용자 그룹이라도 이 jar가 단독으로 배포되기 때문입니다.이것은 OTN 라이센스 계약 위반을 나타냅니다.
또한 JDBC jar를 기업 저장소 매니저(Artactory나 Nexus 등)에 단일 아티팩트로서 설치하는 것은 피해야 합니다.이는 조직 내 사람들에게만 배포되며 이는 OTN 라이센스 계약 위반을 의미하기 때문입니다.
Nexus를 사용하여 타사 종속성 및 표준 메이븐 저장소의 종속성을 관리할 수 있습니다.
현재(2020년 2월 27일) Oracle은 버전 11.2.0.4(ojdbc6)부터 19.3.0(ojdbc10)까지 모든 JDBC 클라이언트 라이브러리를 Maven Central에 com.oracle.database:
예:
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc10</artifactId>
<version>19.3.0.0</version>
</dependency>
지금까지는 maven 저장소를 사용할 수 없습니다.의존관계 관리 툴로서 ivy를 사용하고 있습니다만, maven2의 ibiblio 저장소도 사용하고 있습니다.그리고 이것은 담쟁이덩굴에게 효과가 있다.
<dependency org="oracle" name="ojdbc14" rev="10.2.0.2" conf="*->default"/>
Maven2의 의존관계는 다음과 같습니다.
<dependency>
<groupId>oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.2</version>
</dependency>
ivy 설정에서 http://download.java.net/maven/2/ 및 http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/ [ organization ]/[ http://download.java.net/maven/2/ ]/[ http://download.java.net/maven/2/ ]/[ ]] ]-[ ext ]를 외부 maven2 저장소로 정의합니다.
Oracle JDBC 드라이버는 현재 Maven Central에서 사용할 수 있습니다.다음은 링크입니다.
Oracle JDBC 드라이버 - Maven Central
Maven Central에서 Oracle JDBC 드라이버를 사용할 수 있음을 알리는 Oracle 개발자 기사:
Oracle 발표 - Oracle JDBC 드라이버는 Maven Central에서 이용 가능
예:
<!-- https://mvnrepository.com/artifact/com.oracle.jdbc/ojdbc10 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc10</artifactId>
<version>19.3.0.0</version>
</dependency>
좋은 소식입니다 여러분!마지막으로 Oracle 공식 repo를 사용할 수 있습니다.https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides
저는 LGPLv2로 opensource를 출하하고 있는데, Oracle과 여러 번 이메일을 주고받았는데도 그들의 바이너리 JDBC 드라이버를 디스트리뷰션과 함께 출하할 수 있는지 여부를 알 수 없었습니다.내 라이선스가 OTN 조건과 호환되는지 여부에 관한 문제였기 때문에 그들은 나에게 드라이버 발송을 허가하지 말라고 제안했습니다.이 부분과 관련이 있을 것으로 생각됩니다.
(b) 각 라이선스 계약자가 본 계약의 조건에 부합하는 라이센스 조건에 동의하는 경우, 귀하가 개발한 어플리케이션과 함께 프로그램을 고객에게 배포한다.
따라서 전용/로컬 maven 저장소에서 드라이버를 합법적으로 게시하더라도 해당 아티팩트로 수행할 수 있는 작업에 제한이 있습니다.OTN 라이선스 파일과 함께 바이너리 형식으로 드라이버를 출하해도 사용할 수 없고 사용자가 소프트웨어를 사용하기 전에 수동으로 Oracle 드라이버를 다운로드하여 라이브러리 경로에 드롭해야 한다는 것은 터무니없을 것 같습니다.
제 경우 버전 의존성(10.2.0.4) 아래에 이것을 추가하면 됩니다.이 버전 10.2.0.3.0을 추가한 후 저장소 경로에서 .jar 파일을 사용할 수 없기 때문에 작동하지 않습니다.
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4</version>
항아리를 제공하는 레포는 1개입니다.SBT에서는 다음과 같은 리졸바를 추가합니다.http://dist.codehaus.org/mule/dependencies/maven2에서 "filename driver repo"를 참조하십시오.
및 의존관계: "displicate" % "ojdbc14" % "10.2.0"2"
maven에서도 같은 작업을 할 수 있습니다.pom.xml과 jar는 http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/)에서 구할 수 있습니다.
Netbeans를 사용하는 경우 종속성을 지정하고 아티팩트를 수동으로 설치합니다.다운로드한 .jar 파일을 찾으면 완료됩니다.클린 빌드로 모든 문제를 해결할 수 있습니다.
의존 관계
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>
해라
<repository>
<id>mvnrepository</id>
<url>http://nexus.saas.hand-china.com/content/repositories/rdc</url>
</repository>
아래를 사용해 주세요.
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
이건 내게 매력적으로 작용했어.여러 가지 일을 겪었는데 이게 도움이 됐어요.각 단계에 따라 XML 파일의 이름을 정확히 지정하십시오.
그 과정은 조금 지루하지만 확실히 효과가 있다.
Maven 프로젝트.에서 Oracle JDBC Driver를 사용하기 위한 Github 단순 샘플프로젝트를 여기서 찾을 수 있습니다.
지속적인 통합 + 샘플에 대한 모든 설명을 Travis-CI에서 찾을 수 있습니다.
pom.xml
<properties>
<oracle.driver.version>12.2.0.1</oracle.driver.version>
</properties>
<repositories>
<repository>
<id>maven.oracle.com</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<url>https://maven.oracle.com</url>
<layout>default</layout>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven.oracle.com</id>
<url>https://maven.oracle.com</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>${oracle.driver.version}</version>
</dependency>
</dependencies>
mvnsettings.xml
<settings>
<servers>
<server>
<id>maven.oracle.com</id>
<username>${OTN_USERNAME}</username>
<password>${OTN_PASSWORD}</password>
<configuration>
<basicAuthScope>
<host>ANY</host>
<port>ANY</port>
<realm>OAM 11g</realm>
</basicAuthScope>
<httpConfiguration>
<all>
<params>
<property>
<name>http.protocol.allow-circular-redirects</name>
<value>%b,true</value>
</property>
</params>
</all>
</httpConfiguration>
</configuration>
</server>
</servers>
</settings>
로컬 환경에서 사용하는 방법
바꾸다${OTN_USERNAME}
test/mvnsettings.xml 파일의 Oracle 로그인에 의해
바꾸다${OTN_PASSWORD}
test/mvnsettings.xml 파일의 Oracle 비밀번호에 의해
mvn clean install --settings test/mvnsettings.xml
해결된
- 오류를 해결하려면 다음 설정을 수행하십시오.
이 저장소는 Oracle 10.0.3.0 종속성을 찾기 위해 사용하도록 설정해야 합니다(이 설정은 Buildconfig.groovy grails.project.dependency.dependency.dependency.dependency = "deby" // 또는 ivy에서 수행해야 합니다).
또한 컴파일 시간 오라클 드라이버 다운로드에 다음 설정을 사용합니다.
런타임 "com.debc:ojdbc:10.2.0.3.0"
그러면 grails 응용 프로그램용 Oracle 드라이버를 찾을 수 없는 문제가 해결됩니다.
언급URL : https://stackoverflow.com/questions/1074869/find-oracle-jdbc-driver-in-maven-repository
'programing' 카테고리의 다른 글
Vuex와의 양방향 바인딩 (0) | 2022.07.13 |
---|---|
리프레시 시 Vuejs 루트 리다이렉트 (0) | 2022.07.13 |
C에서 다차원 배열을 함수 인수로 전달 (0) | 2022.07.08 |
Java에서의 CharSequence VS 문자열? (0) | 2022.07.08 |
Vue 클래스 구성 요소에서 필터를 정의하려면 어떻게 해야 합니까? (0) | 2022.07.08 |