Tìm trình điều khiển JDBC của Oracle trong kho lưu trữ Maven


292

Tôi muốn thêm trình điều khiển jdbc oracle vào dự án của mình dưới dạng phụ thuộc (phạm vi thời gian chạy) - ojdbc14. Trong trang MVNreposeective, sự phụ thuộc để đưa vào POM là:

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

tất nhiên điều này không hoạt động vì nó không nằm trong kho lưu trữ trung tâm được sử dụng bởi maven. 2 câu hỏi:

  1. Làm cách nào để tìm kho lưu trữ (nếu có) có chứa tạo phẩm này?

  2. Làm cách nào để thêm nó để Maven sẽ sử dụng nó?



1
ojdbc6 trong kho lưu trữ maven công cộng: stackoverflow.com/questions/9898499/
Khăn

Câu trả lời:


412

Làm cách nào để tìm kho lưu trữ (nếu có) có chứa tạo phẩm này?

Thật không may do giấy phép nhị phân không có kho lưu trữ công khai với Oracle Driver JAR. Điều này xảy ra với nhiều phụ thuộc nhưng không phải là lỗi của Maven. Nếu bạn tình cờ tìm thấy một kho lưu trữ công cộng có chứa JAR, bạn có thể chắc chắn đó là bất hợp pháp.

Làm cách nào để thêm nó để Maven sẽ sử dụng nó?

Một số JAR không thể được thêm vào vì lý do giấy phép có mục nhập pom trong repo Maven Central . Chỉ cần kiểm tra xem, nó chứa thông tin Maven ưa thích của nhà cung cấp:

<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>

... và URL để tải xuống tệp trong trường hợp này là http://www.oracle.com/tĩ/software/tech/java/sqlj_jdbc/index.html .

Sau khi bạn đã tải xuống JAR, chỉ cần thêm nó vào kho lưu trữ trên máy tính của bạn (lưu ý tôi đã kéo groupId, artifactId và phiên bản từ POM):

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 \
     -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar -DgeneratePom=true

Tham số cuối cùng để tạo POM sẽ cứu bạn khỏi các cảnh báo pom.xml

Nếu nhóm của bạn có kho lưu trữ Maven cục bộ , hướng dẫn này có thể hữu ích để tải lên JAR ở đó.


@Victor - Tôi định vị những dòng này ở đâu? trong tệp cài đặt?
Dejell

1
Đó không phải là các dòng trong settings.xml mà là một lệnh, khi bạn có lệnh JAR, lệnh đó sẽ thêm nó vào kho lưu trữ cục bộ của bạn
victor hugo

15
Đối với OJDBC6: 1. mvn install: install-file -DgroupId = com.oracle -DartifactId = ojdbc6 -Dversion = 11.2.0.3 -Dpackaging = jar -Dfile = ojdbc6.jar -DgeneratePom = true <lệ thuộc> <groupId> com.oracle </ groupId> <artifactId> ojdbc6 </ artifactId> <version> 11.2.0.3 </ version> </ lệ thuộc>
oskarae

11
Tôi đi lang thang tại sao Oracle xấu đến nỗi nó không quan tâm đến tất cả các phán xét công khai mà nó có. Nó là xấu ngay cả trong những điều nhỏ như khả năng công khai của các thư viện MIỄN PHÍ của riêng họ.
Askar Kalykov

7
@AmanicA Theo stackoverflow.com/a/27943380/7677308 , Oracle hiện lưu trữ một kho lưu trữ như vậy
SilverNak

51

Vì lý do nào, tôi không thể làm cho bất kỳ giải pháp nào ở trên hoạt động. (Vẫn không thể.)

Thay vào đó, những gì tôi đã làm là đưa jar vào dự án của tôi (blech) và sau đó tạo ra một phụ thuộc "hệ thống" cho nó chỉ ra đường dẫn đến jar. Đây có thể không phải là cách ĐÚNG để làm điều đó, nhưng nó hoạt động. Và nó loại bỏ sự cần thiết cho các nhà phát triển khác trong nhóm (hoặc anh chàng thiết lập máy chủ xây dựng) để đưa jar vào kho lưu trữ cục bộ của họ.

CẬP NHẬT : Giải pháp này hoạt động với tôi khi tôi chạy Công cụ Hibernate. Tuy nhiên, nó KHÔNG xuất hiện để xây dựng tệp WAR. Nó không bao gồm tệp ojdbc6.jar trong tệp WAR đích.

1) Tạo một thư mục gọi là "lib" trong thư mục gốc của dự án của bạn.

2) Sao chép tệp ojdbc6.jar ở đó (bất cứ thứ gì jar được gọi.)

3) Tạo một phụ thuộc trông giống như thế này:

<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>

Xấu xí, nhưng làm việc cho tôi

Để bao gồm các tệp trong tệp chiến tranh, hãy thêm phần sau vào pom của bạn

<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>

8
Tôi thực sự thích giải pháp này vì nó không yêu cầu thiết lập nexus, thường chỉ có 1 hoặc 2 lọ như thế này trong một dự án và nó đơn giản hóa các nhà phát triển khác thiết lập dự án vì họ không phải cập nhật cục bộ .m2 env . (oracle là ứng cử viên chính cho việc này). Ngoài ra, nếu bạn cập nhật repo nguồn của mình bằng một bình orory mới, tất cả các nhà phát triển sẽ có được nó trong lần kéo tiếp theo.
Nồi hơi Q

đã thêm thông tin về cách thêm tệp jar vào tệp WAR
ojblass


1
@Marvo, tôi đã thử nhiều giải pháp và đây là giải pháp tốt nhất, cảm ơn rất nhiều
Mahmoud Saleh

35

Trình điều khiển JDBC của Oracle hiện có sẵn trong Kho lưu trữ Oracle Maven (không phải ở Trung tâm).

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

Kho lưu trữ Oracle Maven yêu cầu đăng ký người dùng. Hướng dẫn có thể được tìm thấy trong:

https://bloss.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-reposeective-without-ides

Cập nhật 2019-10-03

Tôi nhận thấy Spring Boot hiện đang sử dụng Trình điều khiển JDBC của Oracle từ Maven Central .

<dependency>
    <groupId>com.oracle.ojdbc</groupId>
    <artifactId>ojdbc10</artifactId>
    <version>19.3.0.0</version>
</dependency>

Đối với người dùng Gradle, sử dụng:

implementation 'com.oracle.ojdbc:ojdbc10:19.3.0.0'

Không có nhu cầu đăng ký người dùng.

Cập nhật 2020/03/02

Oracle hiện đang xuất bản các trình điều khiển dưới id nhóm com.oracle.database. Xem câu trả lời của Anthony Accioly để biết thêm thông tin. Cảm ơn Anthony.

Trình điều khiển JDBC của Oracle tương thích với JDK6, JDK7 và JDK8

<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc6</artifactId>
  <version>11.2.0.4</version>
</dependency>

Trình điều khiển JDBC của Oracle tương thích với JDK8, JDK9 và JDK11

<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc8</artifactId>
  <version>19.3.0.0</version>
</dependency>

Trình điều khiển JDBC của Oracle tương thích với JDK10 và JDK11

<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc10</artifactId>
  <version>19.3.0.0</version>
</dependency>

cách này nên được ưu tiên
Ashish

30

Tải về jar và đặt nó trong dự án của bạn src/lib. Bây giờ bạn có thể sử dụng plugin trình cài đặt maven.

<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>

Bây giờ bạn chỉ phải thực thi mvn cleanmột lần và lib oracle được cài đặt trong kho lưu trữ maven cục bộ của bạn.


9
thay thế rất hữu ích!
Rakesh Waghela

22

Oracle hiện đang tiết lộ một kho lưu trữ maven tại maven.oracle.com Tuy nhiên, bạn cần phải được xác thực.

Xem https://bloss.oracle.com/WebLogicServer/entry/weblogic_server_and_the_oracle

Theo các bình luận trong bài đăng trên blog, trình điều khiển ojdbc nên có sẵn ở các tọa độ sau:

<groupId>com.oracle.weblogic</groupId>
 <artifactId>ojdbc7</artifactId>
 <version>12.1.3-0-0</version>
 <packaging>jar</packaging>

7
Điều này không hoạt động. Đó là một chút rắc rối. Bạn phải đảm bảo rằng bạn có được tạo phẩm phù hợp, tạo một tài khoản Oracle, thêm một vài thứ vào tệp settings.xml và tệp pom.xml của bạn và thêm tên người dùng và mật khẩu cho tài khoản đó vào settings.xml. Oracle cần sửa lỗi cấp phép của họ vì đây vẫn là PITA.
ggb667

12
Yêu cầu xác thực để có được các tạo tác maven nghe có vẻ vô lý.
Rafael Soares - tuelho

3
Nếu vì lý do nào đó bạn phải sử dụng ojdbc6 (tức là bạn bị kẹt trên Java 6), sau đó thay đổi artifactId thành ojdbc6 thay đổi phiên bản thành 12.1.2-0-0.
dcsohl

Tôi đang cố gắng tìm bản phát hành 11g (11.2.0.4) cho java 6 ... đã có ai tìm thấy chưa?
jpfreire

2
Cập nhật : Đã đóng đinh: đối với trình điều khiển jdbc cũ hơn, bạn cũng phải thay đổi nhómId: mvn org.apache.maven.plugins: maven-Depency-plugin: 2.1: get -DrepoUrl = maven.oracle.com -Dartifact = com.oracle.jc : ojdbc6: 11.2.0.4
jpfreire

17

Hãy thử với:

<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> 

14
Ngoại trừ việc đây là vi phạm giấy phép của Oracle.
Ben L.

3
Bạo lực của giấy phép, nhưng hoạt động. Tôi sử dụng nó cho mục đích giáo dục (không sản xuất). Nó cũng giữ trình điều khiển 12c <phụ thuộc> <groupId> com.oracle </ groupId> <artifactId> ojdbc7 </ artifactId> <phiên bản> 12.1.0.2 </ phiên bản> </ phụ thuộc>
Svetlin Nakov

4
Ngoài vấn đề cấp phép, bạn không nên thêm các kho lưu trữ không xác định trong pom của mình . Điều này thể hiện rủi ro bảo mật và cũng có thể đe dọa công trình của bạn. Bạn có thể đặt bao nhiêu niềm tin vào một kho lưu trữ từ Giáo hội Các Thánh hữu Ngày sau của Chúa Giê Su Ky Tô ? Những gì đảm bảo họ cung cấp rằng kho lưu trữ là đáng tin cậy, an toàn và bảo mật, và họ sẽ không gây rối với nó? Điều gì xảy ra nếu họ bị hack và xuất bản phiên bản độc hại của trình điều khiển ojdbc hoặc bất kỳ phụ thuộc nào khác của bạn?
Didier L

14

1. Làm cách nào để tìm kho lưu trữ (nếu có) có chứa thành phần này?

Như DavidS đã nhận xét dòng tôi trích dẫn tại thời điểm tôi trả lời không còn hiện tại (hiện tại tôi đang viết) Thỏa thuận Thỏa thuận Cấp phép OTN mà tôi đã liên kết. Chỉ xem xét câu trả lời này cho phiên bản cũ hơn của tạo phẩm, như 10.2.0.3.0 và tương tự.

Tất cả các Trình điều khiển JDBC của Cơ sở dữ liệu Oracle được phân phối theo Thỏa thuận Cấp phép OTN .

Nếu bạn đọc Thỏa thuận cấp phép OTN, bạn sẽ thấy điều khoản cấp phép này:

Bạn không được:
...
- phân phối các chương trình trừ khi đi kèm với các ứng dụng của bạn;
...

vì vậy, đó là lý do tại sao bạn không thể tìm thấy bình của trình điều khiển trong bất kỳ Kho lưu trữ Maven công khai nào, bởi vì nó sẽ được phân phối một mình và nếu điều đó xảy ra thì đó sẽ là vi phạm giấy phép.

Thêm phụ thuộc:

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

(hoặc bất kỳ phiên bản nào mới hơn) làm cho Maven tải xuống ojdbc14-10.2.0.3.0.pomduy nhất và trong pom đó bạn có thể đọc:

...
<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>
...

thông báo cho bạn về Giấy phép OTN.

2. Làm thế nào để tôi thêm nó để Maven sẽ sử dụng nó?

Để làm cho các phụ thuộc ở trên hoạt động, tôi đồng ý với người chiến thắng hugo , người đã đề nghị bạn ở đây tự cài đặt jar vào kho lưu trữ Maven cục bộ ( .m2thư mục) bằng cách chạy:

mvn install:install-file -Dfile={Path_to_your_ojdbc.jar} -DgroupId=com.oracle 
-DartifactId=ojdbc -Dversion=10.2.0.3.0 -Dpackaging=jar

nhưng tôi muốn thêm rằng thời hạn cấp phép ở trên không chỉ giới hạn ở nơi bạn không thể tìm thấy bình JDBC, nhưng nó cũng giới hạn ở nơi bạn cũng cài đặt nó!

Trên thực tế, kho lưu trữ Maven cục bộ của bạn phải ở chế độ riêng tư và không được chia sẻ vì nếu được chia sẻ, đó sẽ là một loại phân phối trong đó jar được phân phối một mình, ngay cả khi một nhóm người nhỏ vào mạng cục bộ của bạn và điều này thể hiện một Thỏa thuận cấp phép OTN vi phạm .

Ngoài ra, tôi nghĩ rằng bạn nên tránh cài đặt jar JDBC trong trình quản lý kho lưu trữ của công ty (như Artifactory hoặc Nexus ) dưới dạng một tạo phẩm duy nhất bởi vì nếu nó được cài đặt, nó sẽ vẫn được phân phối một mình, ngay cả khi chỉ cho những người trong tổ chức của bạn và điều này thể hiện một vi phạm thỏa thuận cấp phép OTN .


1
Đáng chú ý, dòng bạn trích dẫn không còn hiện diện trong thỏa thuận bạn liên kết. Dòng gần nhất còn lại là, tôi nghĩ, "Chúng tôi cấp cho Bạn quyền không thể chuyển nhượng, không thể chuyển nhượng để sao chép và phân phối Tài liệu Chương trình và Chương trình chưa sửa đổi như một phần và bao gồm trong ứng dụng của bạn nhằm tương tác với Sản phẩm được liên kết, nếu có, với điều kiện Bạn không tính phí người dùng cuối của mình bất kỳ khoản phí bổ sung nào cho việc sử dụng Chương trình ", điều mà bạn có thể thấy có liên quan đến thanh toán hơn là chi tiết cụ thể của phân phối lại.
DavidS

13

Bạn có thể sử dụng Nexus để quản lý các phụ thuộc của bên thứ 3 cũng như các phụ thuộc trong kho lưu trữ maven tiêu chuẩn.


4
Làm thế nào nexus sẽ giúp trong trường hợp này? Nó sẽ tải xuống cổ vật từ đâu?
ngoằn ngoèo

4
Câu trả lời là không đầy đủ, nhưng tôi nghĩ @Michael Munsey đang nói rằng hãy tạo một kho lưu trữ nội bộ / công ty để tải xuống từ đó.
Randolph

Đúng. Thiết lập Nexus, sau đó tải xuống các lọ thủ công và đặt chúng vào Nexus để các bản dựng maven kế tiếp có thể lấy nó từ phiên bản Nexus của bạn.
Michael Munsey

1
@MichaelMunsey Nói chung, đề xuất một trình quản lý kho lưu trữ như Artifactory hoặc Nexus sẽ là một câu trả lời tốt, nhưng trong trường hợp cụ thể của trình điều khiển cơ sở dữ liệu Oracle JDBC, nó không phải là một cách tốt bởi vì ngay cả khi nó làm cho mọi thứ hoạt động, nó không may làm bạn gặp phải rắc rối do vi phạm thời hạn giấy phép này .
taringamberini

6

Cho đến nay, không thể sử dụng kho maven. Tôi đang sử dụng ivy làm công cụ quản lý phụ thuộc, nhưng cũng sử dụng kho ibiblio của maven2. Và điều này đang làm việc cho cây thường xuân:

<dependency org="oracle" name="ojdbc14" rev="10.2.0.2" conf="*->default"/>

Sự phụ thuộc của Maven2 có thể là một cái gì đó như thế:

<dependency> 
    <groupId>oracle</groupId> 
    <artifactId>ojdbc14</artifactId> 
    <version>10.2.0.2</version> 
</dependency>

Lưu ý rằng tôi xác định http://doad.java.net/maven/2/http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/ [tổ chức] / [mô-đun] / [ sửa đổi] / [artifact] - [sửa đổi]. [ext] dưới dạng repos maven2 bên ngoài trên cài đặt cây thường xuân của tôi.


1
Đây là một câu trả lời tuyệt vời - bạn chỉ có thể thêm repo: mirror.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2 vào pom.xml của bạn để làm việc này.
Grouchal

7
Nó có thể làm việc, nhưng nó là hợp pháp? Như đã giải thích trong một trong những câu trả lời khác ở đây, Oracle không cho phép trình điều khiển được phân phối bởi bất kỳ ai ngoài họ và họ không cung cấp kho lưu trữ Maven. Nếu bạn sử dụng giải pháp này, đôi khi trình điều khiển có thể bị xóa khỏi kho lưu trữ khi bạn ít mong đợi nhất.
LS

1
@Grouchal Câu trả lời này khiến mọi thứ hoạt động nhưng thật không may, khiến bạn gặp rắc rối do vi phạm điều khoản cấp phép này .
taringamberini

@Grouchal ... không có http://maven.ibiblio.org/maven/oraclecũng không có http://maven.ibiblio.org/maven/com.oracle.
David

6

Kể từ hôm nay (27 tháng 2 năm 2020), Oracle đã thông báo rằng họ đã xuất bản tất cả các thư viện máy khách JDBC từ phiên bản 11.2.0.4 (ví dụ: ojdbc6) đến 19.3.0 (ví dụ: ojdbc10) trên Maven Central dưới tên nhóm id com.oracle.database :

Thí dụ:

<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc10</artifactId>
  <version>19.3.0.0</version>
</dependency>

4

Các trình điều khiển JDBC của Oracle hiện có sẵn trong Maven Central . Đây là Liên kết:

Trình điều khiển JDBC của Oracle - Maven Central

Bài viết của các nhà phát triển Oracle thông báo về sự sẵn có của trình điều khiển JDBC của Oracle trong Maven Central:

Thông báo của Oracle - Trình điều khiển JDBC của Oracle có sẵn trong Maven Central

Thí dụ:

<!-- 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>

3

Tin vui nhé mọi người! Cuối cùng, chúng ta có thể sử dụng repo chính thức của Oracle: https://bloss.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-reposeective-without-ides


4
Tin tốt, nhưng cài đặt bảo mật quá phức tạp. Việc tải xuống JAR trong thư mục "lib" dễ dàng hơn như chúng tôi đã làm vào năm 1999.
Svetlin Nakov

nó hoạt động Thiết lập bảo mật không quá phức tạp và nó được ghi lại rõ ràng, bạn chỉ phải thực hiện một lần. Chắc chắn việc bạn phải mã hóa mật khẩu (được mã hóa) ở đâu đó là một điều khó khăn, tôi cũng đặt câu hỏi về quyết định của Oracle để "bảo vệ" quyền truy cập vào kho lưu trữ "công khai" của họ, điều này hoàn toàn không có ý nghĩa gì từ góc độ nhà phát triển.
Pierluigi Vernetto

2

Một số Sản phẩm của Oracle hỗ trợ xuất bản các tạo phẩm maven lên kho lưu trữ cục bộ. Các sản phẩm có một thư mục plugin / maven chứa các mô tả nơi tìm thấy các tạo phẩm đó và nơi lưu trữ chúng. Có một Plugin từ Oracle sẽ thực sự tải lên.

Xem: http://docs.oracle.com/middleware/1212/core/MAVEN/config_maven.htm

Một trong những sản phẩm có thể vận chuyển OJDBC theo cách này là WLS, nó sử dụng các tọa độ khá lạ:

<groupId>com.oracle.weblogic</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.2-0-0</version>

... và manwhile repo cũng là công khai có sẵn: blogs.oracle.com/WebLogicServer/entry/...
eckes

1

Tôi gửi mã nguồn mở theo LGPLv2 và thậm chí sau một vài cuộc trò chuyện email với Oracle, họ không rõ liệu tôi có được phép gửi trình điều khiển JDBC nhị phân của họ với bản phân phối của mình không. Vấn đề liên quan đến việc giấy phép của tôi có tương thích với các điều khoản OTN của họ hay không nên họ đề nghị tôi không được phép gửi tài xế. Có lẽ liên quan đến phần này

(b) để phân phối các chương trình với các ứng dụng bạn đã phát triển cho khách hàng của mình với điều kiện mỗi người được cấp phép như vậy đồng ý với các điều khoản cấp phép phù hợp với các điều khoản của Thỏa thuận này

Vì vậy, ngay cả khi bạn quản lý để xuất bản trình điều khiển một cách hợp pháp trong kho lưu trữ maven độc quyền / cục bộ của bạn, vẫn có hạn chế về những gì bạn được phép làm với tạo phẩm đó. Có vẻ ngớ ngẩn rằng ngay cả khi tôi gửi trình điều khiển của họ ở dạng nhị phân cùng với tệp giấy phép OTN đầy đủ, tôi vẫn không thể sử dụng nó và phải buộc người dùng của tôi tải xuống trình điều khiển Oracle và thả vào đường dẫn thư viện của tôi trước khi họ có thể sử dụng phần mềm của tôi.


0

Có một repo cung cấp bình. Trong SBT, thêm một trình phân giải tương tự như sau: "oro driver repo" tại " http://dist.codehaus.org/mule/dependencies/maven2 "

và một phụ thuộc: "oracle"% "ojdbc14"% "10.2.0.2"

Bạn có thể làm tương tự với maven. pom.xml và jar có sẵn ( http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/ ).


Hãy cẩn thận vì pom này http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom không có định nghĩa giấy phép, vì vậy tôi không nghĩ rằng nó đã được tải lên bởi chủ sở hữu hiện vật. Câu trả lời này khiến mọi thứ hoạt động nhưng thật không may, khiến bạn gặp rắc rối do vi phạm điều khoản cấp phép này .
taringamberini

Downvoter, bạn giận tôi hay ở Oracle? :) Hãy giải thích downvote của bạn để người dùng khác biết vấn đề với câu trả lời này là gì.
ysʞǝla

0

Nếu bạn đang sử dụng Netbeans, goto Dependencies và cài đặt thủ công. Xác định vị trí tệp .jar đã tải xuống của bạn và nó được thực hiện. xây dựng sạch sẽ giải quyết bất kỳ vấn đề.


0

Bạn có thể tìm thấy một dự án mẫu đơn giản Github để sử dụng Trình điều khiển JDBC của Oracle trên Dự án Maven tại đây .

Bạn có thể tìm thấy tất cả các giải thích cho tích hợp liên tục của bạn + một mẫu và chạy trên Travis-CI.

BẢN GIỚI THIỆU


1
Liên kết đến một giải pháp được hoan nghênh, nhưng vui lòng đảm bảo câu trả lời của bạn hữu ích mà không cần đến nó: thêm ngữ cảnh xung quanh liên kết để người dùng đồng nghiệp của bạn sẽ có ý tưởng về nó là gì và tại sao lại có, sau đó trích dẫn phần có liên quan nhất của trang bạn ' liên kết lại trong trường hợp trang đích không có sẵn. Câu trả lời ít hơn một liên kết có thể bị xóa.
Samuel Liew

1
Hồ sơ của bạn cho biết bạn được liên kết với trang web mà bạn đã liên kết. Liên kết đến một cái gì đó bạn liên kết với (ví dụ như một sản phẩm hoặc trang web) mà không tiết lộ nó là của bạn bị coi là thư rác trên Stack Exchange / Stack Overflow. Xem: Điều gì biểu thị sự tự quảng cáo "Tốt"? , một số mẹo và lời khuyên về tự quảng cáo , định nghĩa chính xác của "thư rác" cho Stack Overflow là gì? những gì làm cho một cái gì đó thư rác .
Samuel Liew

0

Đối với sự phụ thuộc

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

Thử

<repository>
    <id>mvnrepository</id>
    <url>http://nexus.saas.hand-china.com/content/repositories/rdc</url>
</repository>

0

Trong trường hợp của tôi, nó hoạt động với tôi sau khi thêm phụ thuộc phiên bản bên dưới (10.2.0.4) này. Sau khi thêm phiên bản 10.2.0.3.0 này, nó không hoạt động do tệp .jar không có trong đường dẫn kho lưu trữ.

<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4</version>

0

Vui lòng thử bên dưới:

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


-3

GIẢI QUYẾT

  • Vui lòng thực hiện các cài đặt sau để khắc phục lỗi

Kho lưu trữ này cần được kích hoạt để tìm các phụ thuộc Oracle 10.0.3.0 (cài đặt này cần được thực hiện trong Buildconfig.groovy grails.project.dependency.resolver = "ivy" // hoặc ivy

Cũng sử dụng cài đặt sau để biên dịch thời gian tải xuống trình điều khiển Oracle

thời gian chạy "com.oracle:ojdbc:10.2.0.3.0"

Điều này sẽ giải quyết vấn đề của bạn vì không tìm thấy trình điều khiển Oracle cho ứng dụng grails


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.