ค้นหาไดรเวอร์ Oracle JDBC ในที่เก็บ Maven


292

ฉันต้องการเพิ่มไดร์เวอร์ oracle jdbc ให้กับโปรเจคของฉันเป็นการพึ่งพา (ขอบเขตรันไทม์) - ojdbc14 ในเว็บไซต์ MVNrepository การพึ่งพาที่จะใส่ใน POM คือ:

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

แน่นอนว่ามันใช้งานไม่ได้เพราะมันไม่ได้อยู่ในพื้นที่เก็บข้อมูลส่วนกลางที่ maven ใช้ 2 คำถาม:

  1. ฉันจะค้นหาที่เก็บ (ถ้ามี) ที่มีส่วนนี้ได้อย่างไร?

  2. ฉันจะเพิ่มมันเพื่อที่ Maven จะใช้มันได้อย่างไร



1
ojdbc6 ในที่เก็บ maven สาธารณะ: stackoverflow.com/questions/9898499/…
Vadzim

คำตอบ:


412

ฉันจะค้นหาที่เก็บ (ถ้ามี) ที่มีส่วนนี้ได้อย่างไร?

น่าเสียดายเนื่องจากสิทธิ์ใช้งานแบบไบนารีไม่มีที่เก็บข้อมูลสาธารณะด้วย Oracle Driver JAR สิ่งนี้เกิดขึ้นกับการพึ่งพาหลายอย่าง แต่ไม่ใช่ความผิดของ Maven หากคุณพบที่เก็บสาธารณะที่มี JAR คุณจะมั่นใจได้ว่ามันผิดกฎหมาย

ฉันจะเพิ่มมันเพื่อที่ Maven จะใช้มันได้อย่างไร

JAR บางตัวที่ไม่สามารถเพิ่มได้เนื่องจากเหตุผลด้านลิขสิทธิ์มี pomรายการในrepo Maven กลาง เพียงตรวจสอบมันมีข้อมูล 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 แล้วให้เพิ่มลงในที่เก็บคอมพิวเตอร์ของคุณด้วย (โปรดทราบว่าฉันดึง groupId, artifactId และรุ่นจาก POM):

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 ที่นั่น


@Victor - ฉันจะค้นหาบรรทัดเหล่านี้ได้ที่ไหน ใน settings.xml
Dejell

1
สิ่งเหล่านี้ไม่ใช่บรรทัดใน settings.xml แต่เป็นคำสั่งเมื่อคุณมี JAR แล้วคำสั่งจะเพิ่มไปยังที่เก็บในเครื่องของคุณ
victor hugo

15
สำหรับ OJDBC6: 1. mvn ติดตั้ง: install-file -DgroupId = com.oracle -DartifactId = ojdbc6 -Dversion = 11.2.0.3 -Dpackaging = jar -Dfile = ojdbc6.jar -DgeneratePom = true 2. เพิ่มสิ่งนี้ลงใน pom.xml: <dependency> <groupId> com.oracle </groupId> <artifactId> ojdbc6 </artifactId> <version> 11.2.0.3 </version> </
dersionency

11
ฉันหลงทางว่าเหตุใด Oracle จึงน่าเกลียดจนไม่สนใจการตัดสินสาธารณะทั้งหมดที่มี มันไม่ดีแม้ในสิ่งเล็ก ๆ เหล่านี้เช่นความพร้อมในที่สาธารณะของห้องสมุดฟรีของพวกเขาเอง
Askar Kalykov

7
@AmanicA จากstackoverflow.com/a/27943380/7677308ขณะนี้ Oracle ได้โฮสต์ที่เก็บข้อมูลดังกล่าว
SilverNak

51

ไม่ว่าด้วยเหตุผลใดก็ตามฉันไม่สามารถใช้วิธีแก้ไขปัญหาใด ๆ ข้างต้นได้ (ยังไม่สามารถทำได้)

สิ่งที่ฉันทำแทนที่จะรวม jar ไว้ในโปรเจ็กต์ของฉัน (blech) จากนั้นสร้างการพึ่งพา "ระบบ" สำหรับมันที่ระบุพา ธ ไปยัง jar มันอาจไม่ใช่วิธีที่ถูกต้องที่จะทำ แต่มันใช้งานได้ และไม่จำเป็นต้องให้นักพัฒนาคนอื่น ๆ ในทีม (หรือคนที่แต่งตัวประหลาดสร้างเซิร์ฟเวอร์สร้าง) เพื่อวางขวดในที่เก็บข้อมูลในพื้นที่

UPDATE : โซลูชันนี้ใช้ได้กับฉันเมื่อฉันเรียกใช้ Hibernate Tools ดูเหมือนว่าจะไม่ทำงานเพื่อสร้างไฟล์ WAR อย่างไรก็ตาม ไม่รวมไฟล์ ojdbc6.jar ในไฟล์ WAR เป้าหมาย

1) สร้างไดเรกทอรีชื่อ "lib" ในรากของโครงการของคุณ

2) คัดลอกไฟล์ ojdbc6.jar ที่นั่น (สิ่งที่เรียกว่า 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>

น่าเกลียด แต่ใช้ได้สำหรับฉัน

หากต้องการรวมไฟล์ในไฟล์ war เพิ่มสิ่งต่อไปนี้ใน pom ของคุณ

<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
ฉันชอบโซลูชันนี้จริง ๆ เพราะไม่จำเป็นต้องติดตั้ง nexus โดยทั่วไปจะมีเพียง 1 หรือ 2 ขวดในโครงการและมันทำให้การติดตั้งของผู้พัฒนาอื่น ๆ ในโครงการง่ายขึ้นเพราะพวกเขาไม่ต้องอัปเดต. m2 env . (oracle เป็นตัวเลือกที่ดีสำหรับเรื่องนี้) นอกจากนี้หากคุณอัปเดตซอร์ส repo ของคุณด้วย oracle jar ใหม่นักพัฒนาทั้งหมดจะได้รับการดึงครั้งต่อไป
บอยเลอร์ Q

เพิ่มข้อมูลเกี่ยวกับวิธีเพิ่มไฟล์ jar ลงในไฟล์ WAR
ojblass

1
สิ่งนี้ใช้ได้กับฉัน - codingcraftsman.wordpress.com/2015/04/20/…
Ashley Frieze

1
@Marvo ฉันพยายามแก้ปัญหามากมายและนี่คือสิ่งที่ดีที่สุดขอบคุณมาก
Mahmoud Saleh

34

ไดรเวอร์ Oracle JDBC พร้อมใช้งานแล้วใน Oracle Maven Repository (ไม่ใช่ในส่วนกลาง)

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

Oracle Maven Repository ต้องการการลงทะเบียนผู้ใช้ คำแนะนำสามารถพบได้ใน:

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

อัปเดต 2019-10-03

ผมสังเกตเห็นฤดูใบไม้ผลิ Boot ตอนนี้ใช้ไดรเวอร์ JDBC ออราเคิลจากMaven กลาง

<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 ดูคำตอบของ Anthony Accioly สำหรับข้อมูลเพิ่มเติม ขอบคุณแอนโทนี่

ไดรเวอร์ Oracle JDBC เข้ากันได้กับ JDK6, JDK7 และ JDK8

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

ไดรเวอร์ Oracle JDBC เข้ากันได้กับ JDK8, JDK9 และ JDK11

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

ไดรเวอร์ Oracle JDBC รองรับ JDK10 และ JDK11

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

วิธีนี้ควรเป็นที่ต้องการ
Ashish

30

src/libดาวน์โหลดขวดและวางไว้ในโครงการของคุณ ตอนนี้คุณสามารถใช้ปลั๊กอินตัวติดตั้ง 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>

ตอนนี้คุณต้องดำเนินการmvn cleanเพียงครั้งเดียวและติดตั้ง oracle lib ในที่เก็บ maven ท้องถิ่นของคุณ


9
ทางเลือกที่มีประโยชน์มาก!
Rakesh Waghela

22

ตอนนี้ Oracle กำลังเปิดเผยที่เก็บ maven ที่ maven.oracle.com อย่างไรก็ตามคุณจำเป็นต้องได้รับการรับรองความถูกต้อง

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

7
มันใช้งานได้ มันค่อนข้างยุ่งยาก คุณต้องตรวจสอบให้แน่ใจว่าคุณได้รับสิ่งประดิษฐ์ที่ถูกต้องสร้างบัญชี Oracle เพิ่มบางสิ่งลงใน settings.xml และไฟล์ pom.xml ของคุณและเพิ่มชื่อผู้ใช้และรหัสผ่านสำหรับบัญชีนั้นไปที่ settings.xml Oracle จำเป็นต้องแก้ไขสิทธิ์ใช้งานเนื่องจากยังเป็น PITA
ggb667

12
ต้องการการรับรองความถูกต้องเพื่อให้ได้วัตถุ maven ที่ฟังดูไร้สาระ
Rafael Soares - tuelho

3
หากคุณต้องใช้ ojdbc6 ด้วยเหตุผลบางประการ (เช่นคุณติดอยู่บน Java 6) จากนั้นเปลี่ยน artifactId เป็น ojdbc6 และเปลี่ยนเวอร์ชันเป็น 12.1.2-0-0
dcsohl

ฉันพยายามหารุ่น 11g (11.2.0.4) สำหรับ java 6 ... มีใครพบบ้าง
jpfreire

2
ปรับปรุง : ตอกมัน: สำหรับไดรเวอร์ jdbc รุ่นเก่าคุณต้องเปลี่ยน groupId: mvn org.apache.maven.plugins: maven-dependency-plugin: 2.1: รับ -DrepoUrl = maven.oracle.com -Dartifact = com.oracle.jdbc : ojdbc6: 11.2.0.4
jpfreire

17

ลองด้วย:

<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
ยกเว้นว่านี่เป็นการละเมิดสิทธิ์การใช้งานของ Oracle
Ben L.

3
ความรุนแรงของใบอนุญาต แต่ใช้งานได้ ฉันใช้เพื่อวัตถุประสงค์ทางการศึกษา (ไม่ใช่ในการผลิต) นอกจากนี้ยังมีไดรเวอร์ 12c <dependency> <groupId> com.oracle </groupId> <artifactId> ojdbc7 </artifactId> <version> 12.1.0.2 </version> </dependency>
Svetlin Nakov

4
นอกจากนี้การออกใบอนุญาตที่คุณไม่ควรเพิ่มพื้นที่เก็บข้อมูลที่ไม่รู้จักใน pom สิ่งนี้นำเสนอความเสี่ยงด้านความปลอดภัยและอาจคุกคามงานสร้างของคุณ คุณสามารถไว้วางใจที่เก็บจากศาสนจักรของพระเยซูคริสต์แห่งวิสุทธิชนยุคสุดท้ายมากเพียงใด พวกเขารับประกันอะไรบ้างว่าที่เก็บมีความน่าเชื่อถือปลอดภัยและพวกเขาจะไม่ยุ่งกับมัน? จะเกิดอะไรขึ้นถ้าพวกเขาถูกแฮ็กและเผยแพร่เวอร์ชันที่เป็นอันตรายของไดรเวอร์ ojdbc หรือการอ้างอิงอื่น ๆ ของคุณ
Didier L

14

1. ฉันจะค้นหาที่เก็บ (ถ้ามี) ที่มีส่วนนี้ได้อย่างไร

ตามที่DavidSได้แสดงความคิดเห็นบรรทัดที่ฉันอ้างในเวลาที่ฉันตอบไม่ได้อยู่ในปัจจุบัน (ในขณะที่ฉันเขียนตอนนี้) ข้อตกลงข้อตกลงใบอนุญาต OTN ที่ฉันเชื่อมโยง พิจารณาคำตอบนี้สำหรับสิ่งประดิษฐ์รุ่นเก่าเท่านั้นเช่น 10.2.0.3.0 และสิ่งที่คล้ายกัน

ไดร์เวอร์ JDBC ฐานข้อมูล Oracleทั้งหมดได้รับการแจกจ่ายภายใต้ข้อตกลงใบอนุญาต OTNข้อตกลงการอนุญาต

หากคุณอ่านข้อตกลงใบอนุญาต OTN คุณจะพบข้อกำหนดสิทธิการใช้งานนี้:

คุณไม่สามารถ:
...
- เผยแพร่โปรแกรมเว้นแต่ว่ามาพร้อมกับแอปพลิเคชันของคุณ
...

นั่นเป็นสาเหตุที่คุณไม่พบขวดโหลของไดรเวอร์ใน Maven Repository สาธารณะใด ๆ เพราะมันจะถูกกระจายเพียงอย่างเดียวและถ้ามันเกิดขึ้นมันจะเป็นการละเมิดใบอนุญาต

การเพิ่มการพึ่งพา:

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

(หรือเวอร์ชั่นที่ใหม่กว่า) ทำให้ Maven ดาวน์โหลดได้ojdbc14-10.2.0.3.0.pomอย่างเดียวและใน 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 จะใช้มัน

เพื่อให้การพึ่งพาดังกล่าวใช้งานได้ฉันเห็นด้วยกับผู้ชนะ hugoซึ่งแนะนำให้คุณที่นี่ติดตั้ง jar ด้วยตนเองลงในที่เก็บ Maven ( .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 ได้ แต่จะ จำกัด ที่คุณติดตั้งด้วย!

ในความเป็นจริงแล้วที่เก็บ Maven ในพื้นที่ของคุณต้องเป็นส่วนตัวและไม่ได้ใช้ร่วมกันเพราะถ้ามีการแชร์ก็จะเป็นการแจกจ่ายแบบที่ jar นั้นถูกแจกจ่ายเพียงอย่างเดียวแม้ว่าจะมีคนกลุ่มเล็ก ๆ ในเครือข่ายท้องถิ่นของคุณการละเมิดข้อตกลงใบอนุญาต OTNละเมิดข้อตกลงใบอนุญาต

ยิ่งกว่านั้นฉันคิดว่าคุณควรหลีกเลี่ยงการติดตั้งโถ JDBC ในผู้จัดการพื้นที่เก็บข้อมูล บริษัท ของคุณ (เช่นArtifactoryหรือNexus ) เป็นสิ่งประดิษฐ์เดียวเพราะถ้ามันถูกติดตั้งแล้วมันจะยังคงกระจายอยู่คนเดียวแม้ว่ากับคนในองค์กรของคุณเท่านั้นละเมิด OTN ข้อตกลงใบอนุญาต


1
โดยเฉพาะอย่างยิ่งบรรทัดที่คุณพูดจะไม่ปรากฏในข้อตกลงที่คุณเชื่อมโยงอีกต่อไป เส้นที่ใกล้เคียงที่สุดคือฉันคิดว่า "เราให้สิทธิ์แก่คุณที่ไม่มีเอกสิทธิ์ไม่สามารถโอนถ่ายไม่ได้ในการคัดลอกและแจกจ่ายเอกสารโปรแกรมและโปรแกรมที่ไม่ได้แก้ไขซึ่งเป็นส่วนหนึ่งของและรวมอยู่ในแอปพลิเคชันของคุณ คุณไม่คิดค่าใช้จ่ายเพิ่มเติมใด ๆ สำหรับผู้ใช้ของคุณสำหรับการใช้งานโปรแกรม "ซึ่งเป็นไปตามที่คุณเห็นจะเกี่ยวข้องกับการชำระเงินมากกว่าที่จะเป็นการแจกจ่ายเฉพาะ
DavidS

13

คุณสามารถใช้Nexusเพื่อจัดการการอ้างอิงบุคคลที่สามรวมถึงการอ้างอิงในที่เก็บ Maven มาตรฐาน


4
Nexus จะช่วยได้อย่างไรในกรณีนี้? มันจะดาวน์โหลดสิ่งประดิษฐ์มาจากไหน?
ziggy

4
คำตอบไม่สมบูรณ์ แต่ฉันคิดว่า @Michael Munsey กำลังบอกว่าจะสร้างที่เก็บข้อมูลภายใน / องค์กรเพื่อดาวน์โหลด
Randolph

ใช่. ตั้งค่า Nexus จากนั้นดาวน์โหลดขวดด้วยตนเองและใส่ลงใน Nexus เพื่อให้การสร้าง maven ที่ต่อเนื่องกันสามารถดึงมาจากอินสแตนซ์ Nexus ของคุณ
Michael Munsey

1
@MichaelMunsey โดยทั่วไปแล้วการแนะนำผู้จัดการพื้นที่เก็บข้อมูลเช่นArtifactoryหรือNexusนั้นเป็นคำตอบที่ดี แต่ในกรณีเฉพาะของไดรเวอร์ฐานข้อมูล Oracle JDBC มันไม่ได้ดีนักเพราะแม้ว่ามันจะทำงานได้อย่างน่าเสียดาย ปัญหาเนื่องจากการละเมิดข้อกำหนดสิทธิ์การใช้งานนี้
taringamberini

6

ถึงตอนนี้มันเป็นไปไม่ได้ที่จะใช้ที่เก็บ Maven ฉันใช้ไม้เลื้อยเป็นเครื่องมือจัดการการพึ่งพา แต่ยังใช้ที่เก็บ ibiblio ของ maven2 และนี่คือการทำงานสำหรับไม้เลื้อย:

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

โปรดสังเกตว่าฉันกำหนดhttp://download.java.net/maven/2/และhttp://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/ [องค์กร] / [โมดูล] / [ revision] / [artifact] - [revision] [ext]เป็น repaven ภายนอก maven2 ในการตั้งค่าไม้เลื้อยของฉัน


1
นี่เป็นคำตอบที่ดี - คุณสามารถเพิ่ม repo: mirror.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2 ใน pom.xmlของคุณเพื่อให้สิ่งนี้ทำงานได้
Grouchal

7
มันอาจใช้งานได้ แต่มันถูกกฎหมายหรือไม่ ตามที่อธิบายไว้ในหนึ่งในคำตอบอื่น ๆ ที่นี่ Oracle ไม่อนุญาตให้มีการแจกจ่ายไดรเวอร์โดยใคร ๆ แต่พวกเขาและพวกเขาไม่ได้ให้บริการพื้นที่เก็บข้อมูล Maven หากคุณใช้โซลูชันนี้บางครั้งไดรเวอร์อาจถูกลบออกจากที่เก็บเมื่อคุณคาดหวังอย่างน้อยที่สุด
LS

1
@Grouchal คำตอบนี้ทำให้ทุกอย่างทำงาน แต่น่าเสียดายที่คุณมีปัญหาเนื่องจากการละเมิดข้อกำหนดสิทธิการใช้งาน
taringamberini

@Grouchal ... ไม่มีมิได้http://maven.ibiblio.org/maven/oracle http://maven.ibiblio.org/maven/com.oracle
david

6

ณ วันนี้ (27 กุมภาพันธ์ 2020) Oracle ประกาศว่าได้เผยแพร่ไลบรารีไคลเอนต์ JDBC ทั้งหมดจากเวอร์ชัน 11.2.0.4 (เช่น ojdbc6) ถึง 19.3.0 (เช่น ojdbc10) บน Maven Central ภายใต้กลุ่ม id com.oracle.database :

ตัวอย่าง:

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

4

ไดรเวอร์ JDBC ออราเคิลมีตอนนี้ที่มีอยู่ในMaven กลางกลาง นี่คือลิงค์:

ไดรเวอร์ Oracle JDBC - Maven Central

บทความนักพัฒนา Oracle ประกาศความพร้อมใช้งานของไดรเวอร์ Oracle JDBC ใน Maven Central:

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>

3

ข่าวดีสำหรับทุกคน! ในที่สุดเราสามารถใช้ repo อย่างเป็นทางการของ Oracle: https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides


4
ข่าวดี แต่การตั้งค่าความปลอดภัยซับซ้อนเกินไป มันง่ายกว่าที่จะดาวน์โหลด JAR ในโฟลเดอร์ "lib" อย่างที่เราทำในปี 1999
Svetlin Nakov

มันได้ผล! การตั้งค่าความปลอดภัยนั้นไม่ซับซ้อนและมีเอกสารครบถ้วนคุณต้องทำเพียงครั้งเดียว ความจริงที่ว่าคุณต้อง hardcode รหัสผ่านของคุณ (เข้ารหัส) ที่ไหนสักแห่งเป็นเรื่องที่เจ็บปวดฉันยังตั้งคำถามกับการตัดสินใจของ Oracle ที่จะ "ปกป้อง" การเข้าถึงพื้นที่เก็บข้อมูล "สาธารณะ" ของพวกเขา
Pierluigi Vernetto

2

ผลิตภัณฑ์ Oracle บางตัวสนับสนุนการเผยแพร่ maven artifacts ไปยังที่เก็บในเครื่อง ผลิตภัณฑ์มีไดเร็กทอรี plugin / maven ซึ่งมีคำอธิบายว่าจะค้นหาสิ่งประดิษฐ์เหล่านั้นได้ที่ไหนและเก็บไว้ที่ไหน มีปลั๊กอินจาก Oracle ซึ่งจะทำการอัปโหลดจริง ๆ

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

หนึ่งในผลิตภัณฑ์ที่อาจส่ง OJDBC ในลักษณะนี้คือ WLS มันใช้พิกัดที่ค่อนข้างแปลก

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

... และในขณะเดียวกัน repo ยังเป็นแบบสาธารณะเช่นกัน: blogs.oracle.com/WebLogicServer/entry/…
eckes

1

ฉันจัดส่งโอเพ่นซอร์สภายใต้ LGPLv2 และแม้หลังจากการสนทนาทางอีเมลกับ Oracle หลายครั้งพวกเขาก็ไม่ชัดเจนว่าฉันได้รับอนุญาตให้ส่งไดรเวอร์ JDBC ไบนารีของพวกเขาด้วยการแจกจ่ายของฉันหรือไม่ ปัญหาที่เกี่ยวข้องกับว่าใบอนุญาตของฉันเข้ากันได้กับเงื่อนไข OTN ของพวกเขาหรือไม่ดังนั้นพวกเขาแนะนำว่าฉันไม่ได้รับอนุญาตให้จัดส่งไดรเวอร์ สันนิษฐานว่าเกี่ยวข้องกับส่วนนี้

(b) เพื่อเผยแพร่โปรแกรมพร้อมแอปพลิเคชันที่คุณพัฒนาให้กับลูกค้าของคุณโดยที่ผู้รับใบอนุญาตแต่ละรายตกลงที่จะใช้ข้อกำหนดสิทธิการใช้งานที่สอดคล้องกับข้อกำหนดของข้อตกลงนี้

ดังนั้นแม้ว่าคุณจะสามารถเผยแพร่ไดรเวอร์ตามกฎหมายในพื้นที่เก็บข้อมูล Maven แบบเอกสิทธิ์เฉพาะบุคคล / ท้องถิ่นของคุณยังมีข้อ จำกัด ในสิ่งที่คุณได้รับอนุญาตให้ทำกับสิ่งประดิษฐ์ที่ ดูเหมือนว่าไร้สาระแม้ว่าฉันจะจัดส่งไดรเวอร์ของพวกเขาในรูปแบบไบนารีพร้อมกับไฟล์ลิขสิทธิ์ OTN เต็มรูปแบบฉันยังคงไม่สามารถใช้งานได้และต้องบังคับให้ผู้ใช้ของฉันดาวน์โหลดไดรเวอร์ Oracle ด้วยตนเองและวางลงในเส้นทางห้องสมุดของฉันก่อนที่จะใช้ซอฟต์แวร์ของฉัน


0

มี repo หนึ่งอันที่ให้ขวด ใน SBT เพิ่มตัวแก้ไขที่คล้ายกับสิ่งนี้: "oracle driver repo" ที่ " http://dist.codehaus.org/mule/dependencies/maven2 "

และการพึ่งพา: "oracle"% "ojdbc14"% "10.2.0.2"

คุณสามารถทำเช่นเดียวกันกับ Maven pom.xml และ jar พร้อมใช้งาน ( http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/ )


ระวังเพราะ pom นี้http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pomไม่มีคำ จำกัด สิทธิ์การใช้งานดังนั้นฉันไม่คิดว่ามันถูกอัปโหลด โดยเจ้าของวัตถุ คำตอบนี้ทำให้ทุกอย่างทำงานได้ แต่น่าเสียดายที่คุณประสบปัญหาเนื่องจากการละเมิดข้อกำหนดสิทธิ์การใช้งานนี้
taringamberini

Downvoter คุณโกรธฉันหรือ Oracle หรือเปล่า :) โปรดอธิบาย downvote ของคุณเพื่อให้ผู้ใช้รายอื่นรู้ว่าปัญหาของคำตอบนี้คืออะไร
yǝsʞǝla

0

หากคุณใช้ Netbeans ให้ไปที่การอ้างอิงและติดตั้งสิ่งประดิษฐ์ด้วยตนเอง ค้นหาไฟล์. jar ที่ดาวน์โหลดมาและทำเสร็จแล้ว สร้างสะอาดจะแก้ปัญหาใด ๆ


0

คุณสามารถค้นหาโครงการตัวอย่างง่ายๆ Github สำหรับการใช้ไดร์เวอร์ JDBC ออราเคิลโครงการ Maven ที่นี่

คุณสามารถค้นหาคำอธิบายทั้งหมดสำหรับการรวมอย่างต่อเนื่องของคุณ + ตัวอย่างและเรียกใช้บน Travis-CI

การสาธิต


1
ยินดีต้อนรับลิงก์ไปยังโซลูชัน แต่โปรดตรวจสอบให้แน่ใจว่าคำตอบของคุณมีประโยชน์หากไม่มี: เพิ่มบริบทรอบลิงก์เพื่อให้ผู้ใช้เพื่อนของคุณมีความคิดว่ามันคืออะไรและเพราะเหตุใดจึงอยู่ที่นั่น กำลังเชื่อมโยงไปยังในกรณีที่หน้าเป้าหมายไม่พร้อมใช้งาน คำตอบที่น้อยกว่าลิงก์อาจถูกลบ
ซามูเอล Liew

1
โปรไฟล์ของคุณระบุว่าคุณเชื่อมโยงกับเว็บไซต์ที่คุณเชื่อมโยง การลิงก์ไปยังสิ่งที่คุณเป็นพันธมิตรกับ (เช่นผลิตภัณฑ์หรือเว็บไซต์) โดยไม่เปิดเผยว่าคุณเป็นสแปมใน Stack Exchange / Stack Overflow ดู: การส่งเสริมตัวเองของ "ดี" หมายถึงอะไร? , เคล็ดลับและคำแนะนำเกี่ยวกับการส่งเสริมตนเอง , ความหมายที่แท้จริงของ "สแปม" สำหรับกองมากเกินคืออะไร? และสิ่งที่ทำให้บางสิ่งบางอย่างสแปม
Samuel Liew

0

สำหรับการพึ่งพา

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

0

ในกรณีของฉันมันใช้งานได้สำหรับฉันหลังจากเพิ่มการพึ่งพาเวอร์ชันด้านล่างนี้ (10.2.0.4) หลังจากเพิ่มรุ่นนี้10.2.0.3.0มันไม่ทำงานเนื่องจากไฟล์. jar ไม่ได้ประโยชน์ในที่เก็บพา ธ

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


0

สิ่งนี้ได้ผลกับฉันเหมือนมีเสน่ห์ ฉันผ่านหลายวิธี แต่สิ่งนี้ช่วยฉันได้ ตรวจสอบให้แน่ใจว่าคุณทำตามแต่ละขั้นตอนและตั้งชื่อไฟล์ XML ให้ตรงกันทุกประการ

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

กระบวนการนี้ค่อนข้างน่าเบื่อ แต่ก็ใช่ว่าจะได้ผล


-3

แก้ไข

  • โปรดทำการตั้งค่าต่อไปนี้เพื่อแก้ไขข้อผิดพลาด

พื้นที่เก็บข้อมูลนี้จะต้องเปิดใช้งานสำหรับการค้นหา Oracle 10.0.3.0 Depecies (การตั้งค่านี้จะต้องทำใน Buildconfig.groovy grails.project.dependency.resolver = "ivy" // หรือ ivy

ใช้การตั้งค่าต่อไปนี้สำหรับการดาวน์โหลดไดรเวอร์ Oracle

ไทม์ "com.oracle:ojdbc:10.2.0.3.0"

นี่ควรแก้ปัญหาของคุณหากไม่พบไดรเวอร์ Oracle สำหรับการใช้งาน grails


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.