Suchen Sie den Oracle JDBC-Treiber im Maven-Repository

292

Ich möchte den Oracle JDBC-Treiber als Abhängigkeit (Laufzeitbereich) zu meinem Projekt hinzufügen - ojdbc14. In der MVNrepository-Site lautet die Abhängigkeit, die in das POM eingefügt werden soll:

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

Dies funktioniert natürlich nicht, da es sich nicht im zentralen Repository befindet, das von maven verwendet wird. 2 Fragen:

  1. Wie finde ich ein Repository (falls vorhanden), das dieses Artefakt enthält?

  2. Wie füge ich es hinzu, damit Maven es verwendet?

rperez
quelle
1
ojdbc6 im öffentlichen Maven-Repository: stackoverflow.com/questions/9898499/…
Vadzim

Antworten:

412

Wie finde ich ein Repository (falls vorhanden), das dieses Artefakt enthält?

Leider gibt es aufgrund der Binärlizenz kein öffentliches Repository mit der Oracle Driver JAR. Dies geschieht mit vielen Abhängigkeiten, ist aber nicht Mavens Schuld. Wenn Sie zufällig ein öffentliches Repository finden, das die JAR enthält, können Sie sicher sein, dass dies illegal ist.

Wie füge ich es hinzu, damit Maven es verwendet?

Einige JARs, die aus Lizenzgründen nicht hinzugefügt werden können, haben einen POM- Eintrag im Maven Central-Repo . Probieren Sie es einfach aus, es enthält die bevorzugten Maven-Informationen des Anbieters:

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

... und die URL zum Herunterladen der Datei, in diesem Fall http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html .

Sobald Sie die JAR heruntergeladen haben, fügen Sie sie einfach mit Ihrem Computer-Repository hinzu (Hinweis: Ich habe die Gruppen-ID, die Artefakt-ID und die Version aus dem POM abgerufen):

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

Der letzte Parameter zum Generieren eines POM schützt Sie vor Warnungen von pom.xml

Wenn Ihr Team über ein lokales Maven-Repository verfügt, kann dieses Handbuch hilfreich sein, um die JAR dort hochzuladen.

Victor Hugo
quelle
@ Victor - wo finde ich diese Zeilen? in settings.xml?
Dejell
1
Das sind keine Linien in settings.xml , sondern ein Befehl, einmal haben Sie die JAR dieser Befehl auf Ihrem lokalen Repository hinzufügen wird
victor hugo
15
Für OJDBC6: 1. mvn install: install-file -DgroupId = com.oracle -DartifactId = ojdbc6 -Dversion = 11.2.0.3 -Dpackaging = jar -Dfile = ojdbc6.jar -DgeneratePom = true 2. Fügen Sie dies zu pom.xml hinzu: <dependency> <groupId> com.oracle </ groupId> <artifactId> ojdbc6 </ifactId> <version> 11.2.0.3 </ version> </ dependency>
oskarae
11
Ich frage mich, warum Oracle so hässlich ist, dass es sich nicht um alle öffentlichen Urteile kümmert, die es hat. Es ist schlecht, selbst in diesen kleinen Dingen wie der öffentlichen Verfügbarkeit ihrer eigenen KOSTENLOSEN Bibliotheken.
Askar Kalykov
7
@AmanicA Laut stackoverflow.com/a/27943380/7677308 hostet Oracle jetzt ein solches Repository
SilverNak
51

Aus irgendeinem Grund konnte ich keine der oben genannten Lösungen zum Laufen bringen. (Kann immer noch nicht.)

Stattdessen habe ich das Glas in mein Projekt aufgenommen (blech) und dann eine "System" -Abhängigkeit dafür erstellt, die den Pfad zum Glas angibt. Es ist wahrscheinlich nicht der richtige Weg, es zu tun, aber es funktioniert. Außerdem müssen die anderen Entwickler im Team (oder der Typ, der den Build-Server einrichtet) die JAR-Datei nicht mehr in ihren lokalen Repositorys ablegen.

AKTUALISIEREN : Diese Lösung funktioniert für mich, wenn ich Hibernate Tools ausführe. Es scheint jedoch NICHT zum Erstellen der WAR-Datei zu funktionieren. Die Datei ojdbc6.jar ist nicht in der WAR-Zieldatei enthalten.

1) Erstellen Sie ein Verzeichnis mit dem Namen "lib" im Stammverzeichnis Ihres Projekts.

2) Kopieren Sie die Datei ojdbc6.jar dorthin (wie auch immer das Glas heißt.)

3) Erstellen Sie eine Abhängigkeit, die ungefähr so ​​aussieht:

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

Hässlich, funktioniert aber bei mir.

Um die Dateien in die Kriegsdatei aufzunehmen, fügen Sie Ihrem POM Folgendes hinzu

<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>
Marvo
quelle
8
Ich mag diese Lösung tatsächlich, weil sie kein Nexus einrichten muss, normalerweise nur 1 oder 2 solche Jars in einem Projekt vorhanden sind und andere Entwickler die Einrichtung des Projekts vereinfachen, da sie ihre lokale .m2-Umgebung nicht aktualisieren müssen . (Orakel ist der Hauptkandidat dafür). Wenn Sie Ihr Quell-Repo mit einem neuen Oracle-Glas aktualisieren, erhalten alle Entwickler es beim nächsten Zug.
Q Boiler
Informationen zum Hinzufügen der JAR-Dateien zur WAR-Datei
hinzugefügt
1
Dies funktionierte für mich - Codingcraftsman.wordpress.com/2015/04/20/…
Ashley Frieze
1
@ Marvo, ich habe viele Lösungen ausprobiert und dies war die beste, vielen Dank
Mahmoud Saleh
35

Der Oracle JDBC-Treiber ist jetzt im Oracle Maven Repository verfügbar (nicht in Central).

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

Das Oracle Maven Repository erfordert eine Benutzerregistrierung. Anweisungen finden Sie in:

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

Update 2019-10-03

Ich habe festgestellt, dass Spring Boot jetzt den Oracle JDBC-Treiber von Maven Central verwendet .

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

Verwenden Sie für Gradle-Benutzer:

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

Eine Benutzerregistrierung ist nicht erforderlich.

Update 2020-03-02

Oracle veröffentlicht die Treiber jetzt unter der Gruppen-ID com.oracle.database. Weitere Informationen finden Sie in der Antwort von Anthony Accioly. Danke Anthony.

Oracle JDBC-Treiber kompatibel mit JDK6, JDK7 und JDK8

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

Oracle JDBC-Treiber kompatibel mit JDK8, JDK9 und JDK11

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

Oracle JDBC-Treiber kompatibel mit JDK10 und JDK11

<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc10</artifactId>
  <version>19.3.0.0</version>
</dependency>
Bienvenido David
quelle
Dies sollte bevorzugt werden.
Ashish
30

Laden Sie das Glas herunter und platzieren Sie es in Ihrem Projekt src/lib. Jetzt können Sie das Maven Installer Plugin verwenden.

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

Jetzt müssen Sie nur noch mvn cleaneinmal ausführen und die Oracle-Bibliothek wird in Ihrem lokalen Maven-Repository installiert.

Peter Enis
quelle
9
sehr nützliche Alternative!
Rakesh Waghela
22

Oracle stellt jetzt ein Maven-Repository unter maven.oracle.com zur Verfügung. Sie müssen jedoch authentifiziert sein.

Siehe https://blogs.oracle.com/WebLogicServer/entry/weblogic_server_and_the_oracle

Laut den Kommentaren im Blog-Beitrag sollte der ojdbc-Treiber an folgenden Koordinaten verfügbar sein:

<groupId>com.oracle.weblogic</groupId>
 <artifactId>ojdbc7</artifactId>
 <version>12.1.3-0-0</version>
 <packaging>jar</packaging>
Sebastien
quelle
7
Das funktioniert. Es ist ein bisschen mühsam. Sie müssen sicherstellen, dass Sie das richtige Artefakt erhalten, ein Oracle-Konto erstellen, ein paar Dinge zu settings.xml und Ihrer pom.xml-Datei hinzufügen und einen Benutzernamen und ein Kennwort für dieses Konto zu settings.xml hinzufügen. Oracle muss die Lizenzierung korrigieren, da dies immer noch eine PITA ist.
ggb667
12
Authentifizierung erforderlich, um Maven-Artefakte zu erhalten, klingt lächerlich.
Rafael Soares - Tuelho
3
Wenn Sie aus irgendeinem Grund ojdbc6 verwenden müssen (dh Sie stecken in Java 6 fest), ändern Sie die Artefakt-ID in ojdbc6 und die Version in 12.1.2-0-0.
dcsohl
Ich versuche 11g Release (11.2.0.4) für Java 6 zu finden ... hat jemand gefunden?
jpfreire
2
Update : Genagelt: Für ältere JDBC-Treiber müssen Sie auch die Gruppen-ID ändern: mvn org.apache.maven.plugins: maven-dependency-plugin: 2.1: get -DrepoUrl = maven.oracle.com -Dartifact = com.oracle.jdbc : ojdbc6: 11.2.0.4
jpfreire
17

Versuche es mit:

<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> 
search9x
quelle
14
Dies ist jedoch eine Verletzung der Oracle-Lizenz.
Ben L.
3
Gewalt gegen die Lizenz, funktioniert aber. Ich benutze es für Bildungszwecke (nicht in der Produktion). Es enthält auch den 12c-Treiber <dependency> <groupId> com.oracle </ groupId> <artifactId> ojdbc7 </ifactId> <version> 12.1.0.2 </ version> </ dependency>
Svetlin Nakov
4
Zusätzlich zum Lizenzproblem sollten Sie Ihrem POM keine unbekannten Repositorys hinzufügen . Dies stellt ein Sicherheitsrisiko dar und kann auch Ihren Build gefährden. Wie viel Vertrauen können Sie in ein Archiv der Kirche Jesu Christi der Heiligen der Letzten Tage setzen ? Welche Garantien bieten sie, dass das Repository zuverlässig, sicher und geschützt ist und dass sie sich nicht damit anlegen? Was passiert, wenn sie gehackt werden und eine schädliche Version des ojdbc-Treibers oder eine andere Ihrer Abhängigkeiten veröffentlichen?
Didier L
14

1. Wie finde ich ein Repository (falls vorhanden), das dieses Artefakt enthält?

Wie DavidS kommentiert hat, ist die Zeile, die ich zum Zeitpunkt meiner Antwort zitiert habe, in der aktuellen (zum Zeitpunkt, an dem ich gerade schreibe) OTN-Lizenzvereinbarung, die ich verlinkt habe, nicht mehr vorhanden. Betrachten Sie diese Antwort nur für ältere Versionen des Artefakts wie 10.2.0.3.0 und dergleichen.

Alle Oracle Database JDBC-Treiber werden unter der OTN-Lizenzvereinbarung vertrieben .

Wenn Sie die OTN-Lizenzvereinbarung lesen, finden Sie diese Lizenzbedingung:

Sie dürfen nicht:
...
- die Programme verbreiten, es sei denn, Ihre Bewerbungen sind beigefügt;
...

Aus diesem Grund können Sie das Treiberglas in keinem öffentlichen Maven-Repository finden, da es alleine verteilt wird und es in diesem Fall eine Lizenzverletzung darstellt.

Hinzufügen der Abhängigkeit:

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

(oder eine spätere Version) machen Maven-Downloads zum ojdbc14-10.2.0.3.0.pomeinzigen, und in diesem Pom können Sie lesen:

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

Hiermit werden Sie über die OTN-Lizenz informiert.

2. Wie füge ich es hinzu, damit Maven es verwendet?

Damit die oben genannten Abhängigkeiten funktionieren, stimme ich Victor Hugo zu, der Ihnen hier vorgeschlagen hat , das JAR manuell in Ihrem lokalen Maven-Repository (dem .m2Verzeichnis) zu installieren , indem Sie Folgendes ausführen :

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

aber ich möchte hinzufügen, dass die oben genannte Lizenzbedingung nicht nur einschränkt, wo Sie das JDBC-JAR nicht finden können, sondern auch, wo Sie es installieren!

Tatsächlich muss Ihr lokales Maven-Repository privat und nicht freigegeben sein, da es sich bei einer Freigabe um eine Art Verteilung handelt, bei der das Glas allein verteilt wird, selbst wenn es an eine kleine Gruppe von Personen in Ihrem lokalen Netzwerk verteilt wird Verstoß gegen die OTN-Lizenzvereinbarung .

Darüber hinaus sollten Sie vermeiden, die JDBC-JAR-Datei in Ihrem Unternehmens-Repository-Manager (z. B. Artifactory oder Nexus ) als einzelnes Artefakt zu installieren, da sie bei ihrer Installation immer noch allein verteilt wird, selbst wenn sie nur an Personen in Ihrer Organisation gesendet wird eine Verletzung der OTN-Lizenzvereinbarung .

Taringamberini
quelle
1
Insbesondere ist die von Ihnen angegebene Zeile in der von Ihnen verknüpften Vereinbarung nicht mehr vorhanden. Die nächste verbleibende Zeile lautet meines Erachtens: "Wir gewähren Ihnen ein nicht ausschließliches, nicht übertragbares Recht zum Kopieren und Verteilen von nicht modifizierten Programmen und Programmdokumentationen als Teil Ihrer Anwendung, die gegebenenfalls für die Zusammenarbeit mit dem zugehörigen Produkt vorgesehen ist, sofern dies vorgesehen ist Sie berechnen Ihren Endbenutzern keine zusätzlichen Gebühren für die Nutzung der Programme. "Wie Sie sehen, geht es mehr um die Zahlung als um die Besonderheiten der Umverteilung.
DavidS
13

Mit Nexus können Sie Abhängigkeiten von Drittanbietern sowie Abhängigkeiten in Standard-Maven-Repositorys verwalten.

Michael Munsey
quelle
4
Wie würde Nexus in diesem Fall helfen? Woher wird das Artefakt heruntergeladen?
Zicky
4
Die Antwort ist unvollständig, aber ich denke, @Michael Munsey sagt, dass er ein internes / Unternehmens-Repository zum Herunterladen erstellen soll.
Randolph
Ja. Richten Sie Nexus ein, laden Sie die Jars manuell herunter und legen Sie sie in Nexus ab, damit aufeinanderfolgende Maven-Builds sie aus Ihrer Nexus-Instanz abrufen können.
Michael Munsey
1
@MichaelMunsey Im Allgemeinen wäre es eine gute Antwort, einen Repository-Manager wie Artifactory oder Nexus vorzuschlagen. Im speziellen Fall von Oracle JDBC-Datenbanktreibern ist dies jedoch keine gute Antwort, da Sie dadurch leider auch dann in Gefahr geraten , wenn dies funktioniert Probleme aufgrund dieser Verletzung der Lizenzbedingungen .
Taringamberini
6

Bisher ist es nicht möglich, Maven-Repositorys zu verwenden. Ich verwende ivy als Abhängigkeitsmanagement-Tool, verwende aber auch die ibiblio-Repositorys von maven2. Und das funktioniert für Efeu:

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

Die Abhängigkeit von Maven2 könnte ungefähr so ​​aussehen:

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

Beachten Sie, dass ich http://download.java.net/maven/2/ und http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/ [Organisation] / [Modul] / [definiere Revision] / [Artefakt] - [Revision]. [ext] als externe maven2-Repos in meinen Efeu-Einstellungen.

Tugcem
quelle
1
Dies ist eine großartige Antwort - Sie können einfach das Repo hinzufügen: Mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2 zu Ihrer pom.xml, damit dies funktioniert.
Grouchal
7
Es könnte funktionieren, aber ist es legal? Wie in einer der anderen Antworten hier erläutert, erlaubt Oracle nicht, dass der Treiber von jemand anderem als ihnen verteilt wird, und sie stellen kein Maven-Repository bereit. Wenn Sie diese Lösung verwenden, wird der Treiber möglicherweise manchmal aus dem Repository entfernt, wenn Sie dies am wenigsten erwarten.
LS
1
@Grouchal Diese Antwort bringt die Dinge zum Laufen, setzt Sie jedoch aufgrund dieser Verletzung der Lizenzbedingungen leider Problemen aus .
Taringamberini
@Grouchal ... es gibt kein http://maven.ibiblio.org/maven/oraclenoch http://maven.ibiblio.org/maven/com.oracle.
David
6

Ab heute (27. Februar 2020) gab Oracle bekannt, dass alle JDBC-Clientbibliotheken von Version 11.2.0.4 (z. B. ojdbc6) bis 19.3.0 (z. B. ojdbc10) auf Maven Central unter der Gruppen-ID com.oracle.database veröffentlicht wurden :

Beispiel:

<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc10</artifactId>
  <version>19.3.0.0</version>
</dependency>
Anthony Accioly
quelle
4

Die Oracle JDBC-Treiber sind jetzt in Maven Central verfügbar . Hier ist der Link:

Oracle JDBC-Treiber - Maven Central

Oracle-Entwicklerartikel, in dem die Verfügbarkeit der Oracle JDBC-Treiber in Maven Central angekündigt wird:

Oracle-Ankündigung - Oracle JDBC-Treiber in Maven Central verfügbar

Beispiel:

<!-- 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>
Alboz
quelle
3

Gute Neuigkeiten alle zusammen! Schließlich können wir das offizielle Repo von Oracle verwenden: https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides

Vladimir Chervanev
quelle
4
Gute Nachrichten, aber die Sicherheitseinstellungen sind zu komplex. Es ist einfacher, die JAR im Ordner "lib" herunterzuladen, als wir es 1999 getan haben.
Svetlin Nakov
Es klappt! Das Sicherheits-Setup ist nicht so komplex und gut dokumentiert. Sie müssen es nur einmal ausführen. Sicherlich ist die Tatsache, dass Sie Ihr (verschlüsseltes) Passwort irgendwo fest codieren müssen, ein Schmerz. Ich bezweifle auch die Entscheidung von Oracle, den Zugriff auf das "öffentliche" Repository zu "schützen". Aus Entwicklersicht macht dies absolut keinen Sinn.
Pierluigi Vernetto
2

Einige Oracle-Produkte unterstützen das Veröffentlichen von Maven-Artefakten in einem lokalen Repository. Die Produkte verfügen über ein Plugin / Maven-Verzeichnis, das Beschreibungen enthält, wo diese Artefakte zu finden und wo sie gespeichert werden. Es gibt ein Plugin von Oracle, das den Upload tatsächlich ausführt.

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

Eines der Produkte, die OJDBC auf diese Weise versenden können, ist das WLS, es verwendet jedoch ziemlich seltsame Koordinaten:

<groupId>com.oracle.weblogic</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.2-0-0</version>
eckes
quelle
... und mittlerweile ist das Repo auch öffentlich verfügbar: blogs.oracle.com/WebLogicServer/entry/…
eckes
1

Ich versende Open Source unter LGPLv2 und selbst nach mehreren E-Mail-Gesprächen mit Oracle war nicht klar, ob ich ihren binären JDBC-Treiber mit meiner Distribution versenden durfte. Das Problem bezog sich darauf, ob meine Lizenz mit den OTN-Bedingungen kompatibel war, und sie schlugen vor, dass ich den Fahrer nicht versenden durfte. Vermutlich mit diesem Teil verwandt

(b) die Programme mit von Ihnen entwickelten Anwendungen an Ihre Kunden zu vertreiben, vorausgesetzt, jeder dieser Lizenznehmer stimmt den Lizenzbedingungen zu, die mit den Bestimmungen dieser Vereinbarung vereinbar sind

Selbst wenn Sie es schaffen, den Treiber legal in Ihrem exklusiven / lokalen Maven-Repository zu veröffentlichen, besteht dennoch die Einschränkung, was Sie mit diesem Artefakt tun dürfen. Es scheint absurd, dass ich den Treiber auch dann nicht verwenden kann, wenn ich ihn in binärer Form zusammen mit der vollständigen OTN-Lizenzdatei versende, und meine Benutzer zwingen muss, den Oracle-Treiber manuell herunterzuladen und in meinen Bibliothekspfad zu wechseln, bevor sie meine Software verwenden können.

Craig
quelle
0

Es gibt ein Repo, das das Glas liefert. Fügen Sie in SBT einen ähnlichen Resolver hinzu: "oracle driver repo" unter " http://dist.codehaus.org/mule/dependencies/maven2 ".

und eine Abhängigkeit: "oracle"% "ojdbc14"% "10.2.0.2"

Sie können das gleiche mit Maven tun. pom.xml und jar sind verfügbar ( http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/ ).

yǝsʞǝla
quelle
Seien Sie vorsichtig, da dieser POM http://dist.codehaus.org/mule/dependencies/maven2/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom keine Lizenzdefinition hat, daher glaube ich nicht, dass er hochgeladen wurde vom Artefaktbesitzer. Diese Antwort bringt die Dinge zum Laufen, setzt Sie jedoch aufgrund dieser Verletzung der Lizenzbedingungen leider Problemen aus .
Taringamberini
Downvoter, bist du sauer auf mich oder auf Oracle? :) Bitte erläutern Sie Ihre Ablehnung, damit andere Benutzer wissen, wo das Problem mit dieser Antwort liegt.
yǝsʞǝla
0

Wenn Sie Netbeans verwenden, gehen Sie zu Abhängigkeiten und installieren Sie das Artefakt manuell. Suchen Sie Ihre heruntergeladene JAR-Datei und fertig. Clean Build wird alle Probleme lösen.

Zafrullah Syed
quelle
0

Ein einfaches Github-Beispielprojekt zur Verwendung eines Oracle JDBC-Treibers für Maven Project finden Sie hier .

Sie können alle Erklärungen für Ihre kontinuierliche Integration + ein Beispiel finden und auf Travis-CI ausführen.

DEMO

sgrillon
quelle
1
Ein Link zu einer Lösung ist willkommen, aber stellen Sie sicher, dass Ihre Antwort ohne sie nützlich ist: Fügen Sie dem Link einen Kontext hinzu, damit Ihre Mitbenutzer eine Vorstellung davon haben, was es ist und warum es dort ist, und zitieren Sie dann den relevantesten Teil der Seite, die Sie verwenden. erneutes Verknüpfen mit, falls die Zielseite nicht verfügbar ist. Antworten, die kaum mehr als ein Link sind, können gelöscht werden.
Samuel Liew
1
Ihr Profil zeigt an, dass Sie mit der Website verbunden sind, auf die Sie verlinkt haben. Das Verknüpfen mit etwas, mit dem Sie verbunden sind (z. B. einem Produkt oder einer Website), ohne dass es Ihnen gehört, gilt als Spam bei Stack Exchange / Stack Overflow. Siehe: Was bedeutet "gute" Eigenwerbung? , einige Tipps und Ratschläge zur Eigenwerbung , Was ist die genaue Definition von "Spam" für Stapelüberlauf? und was macht etwas Spam .
Samuel Liew
0

Für die Abhängigkeit

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

Versuchen

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

In meinem Fall funktioniert es für mich, nachdem ich diese unten stehende Versionsabhängigkeit (10.2.0.4) hinzugefügt habe. Nach dem Hinzufügen dieser Version 10.2.0.3.0 funktioniert dies nicht, da die JAR-Datei im Repository-Pfad nicht verfügbar ist .

<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4</version>
anand krish
quelle
0

Bitte versuchen Sie es unten:

<dependency>
    <groupId>com.oracle.ojdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.3.0.0</version>
</dependency>
Sonnig
quelle
-3

Gelöst

  • Bitte nehmen Sie die folgenden Einstellungen vor, um den Fehler zu beheben

Dieses Repository muss aktiviert sein, um Oracle 10.0.3.0-Abhängigkeiten zu finden (diese Einstellung muss in Buildconfig.groovy grails.project.dependency.resolver = "ivy" // oder ivy vorgenommen werden

Verwenden Sie auch die folgende Einstellung zum Herunterladen der Oracle-Treiber zur Kompilierungszeit

Laufzeit "com.oracle:ojdbc:10.2.0.3.0"

Dies sollte Ihr Problem lösen, wenn Sie den Oracle-Treiber für die Grails-Anwendung nicht finden


Makarand
quelle