2012-03-27 13 views
75

Ich kann Maven anscheinend nicht dazu bringen, die ojdbc6.jar-Datei in die Kriegsdatei meines Projekts zu bündeln. Ich habe es in der POM-Datei arbeiten, wenn Sie eine Abhängigkeit direkt für Hibernate-Tools angeben. Es wird jedoch nicht mit der WAR-Datei des Projekts gebündelt, und daher wird mein Projekt nicht auf Tomcat ausgeführt.Oracle JDBC ojdbc6 Jar als Maven-Abhängigkeit

ich jede Lösung versucht habe ich im Netz da draußen finden kann, für diese Frage einschließlich der hier angegeben:

Find Oracle JDBC driver in Maven repository

kürzlich Most, habe ich die folgenden:

  1. Laden Sie die JAR-Datei auf meinen Rechner herunter

  2. Führen Sie den folgenden Befehl aus, um das JAR in mein lokales Repository zu installieren:

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

    (Ich habe alle Arten von Varianten dieses Befehls versucht, auch.)

  3. Schließlich habe ich die Abhängigkeit in meine pom-Datei setzen:

    <dependency> 
        <groupId>com.oracle</groupId> 
        <artifactId>ojdbc6</artifactId> 
        <version>11.2.0.3</version> 
    </dependency> 
    
  4. ich laufen sauber zu bauen, aber es funktioniert nicht:

    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] 
    

Warum funktioniert das nicht? Ich bin bereit, teure Computerteile durch den Raum zu werfen. Das hat so viel Zeit verschwendet. (Danke, Oracle. Wie viel haben wir dich wieder bezahlt?)

Ist es, weil ich auf einem Mac bin, vielleicht?

+6

Können Sie überprüfen, ob die Datei 'ojdbc6-11.2.0.3.jar' in Ihrem lokalen Repository im richtigen Ordner vorhanden ist? – Raghuram

+1

Die JAR-Datei scheint nie in das Repository kopiert zu werden. Nur ein paar Dateien, die scheinbar darauf verweisen. Muss die Datei genau so aufgerufen werden? Es ist nur ojdbc6.jar in meinem lib-Verzeichnis. – Marvo

+15

Hmm! Also 'mvn install: install-file' hat nicht funktioniert. Sie sollten die absolute Position von "ojdbc6.jar" angeben oder den Befehl aus dem Ordner ausführen, in dem er enthalten ist. Der Dateiname ist kein Problem. Sie könnten mit einem '-X' Flag laufen, so dass Sie Informationen debuggen können. – Raghuram

Antwort

21

Die richtige Antwort wurde von Raghuram im Kommentarbereich zu meiner ursprünglichen Frage geliefert.

Aus irgendeinem Grund, "mvn install" auf einen vollständigen Pfad der physischen ojdbc6.jar Datei zeigen, funktionierte nicht für mich. (Oder ich habe es wiederholt wiederholt, wenn ich den Befehl ausführte, aber es wurden keine Fehler ausgegeben.)

cd-in das Verzeichnis, wo ich ojdb6.jar behalte und den Befehl von dort aus ausgeführt habe, das erste Mal.

Wenn Raghuram diese Frage beantworten möchte, nehme ich stattdessen seine Antwort an. Danke allen!

+1

Danke @Raghuram und Marvo – spiderman

112

Es ist besser, ein neues Maven-Repository zu Ihrem Projekt hinzuzufügen, anstatt es in Ihrem lokalen Repository zu installieren.

Maven Syntax:

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

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

Letztendlich haben wir das gemacht. Wir haben hier ein Repository eingerichtet, und alle unsere Projekte verwenden es jetzt. Ich denke, es ist nützlich zu wissen, wie man beides macht. – Marvo

+2

Ist das lds.org-Repository legal? Laut dieser Antwort ist es illegal: http://stackoverflow.com/a/1074971/1415732 – Alden

+2

Ich frage mich, wenn ich Abhängigkeit zu meinem Unternehmen Repository installieren würde, wäre es auch illegal? Oder nur öffentliche Repos sind illegal? Es ist Oracle's Fehler, dass sie kein öffentliches Maven-Repository für ihre Bibliotheken haben. Ich würde es schätzen, wenn jemand diese Bibliothek in ihrem Repository teilt (und es ist ständig zugänglich). –

1

Nach

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

überprüfen Sie Ihre .m2 Repositoryordner (/com/oracle/ojdbc6/11.2.0.3) um zu sehen, ob ojdbc6.jar existiert. Wenn nicht, überprüfe deine maven-Repository-Einstellungen unter $ M2_HOME/conf/settings.xml

1

ich unter Befehl gefolgt es funktioniert:

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 

Nach der Installation prüfen, ob Glas korrekt auf Ihrem M2_repo installiert ist.

29

Für alle, die diesen Beitrag in Zukunft lesen, müssen Sie nicht in das Verzeichnis wechseln, in dem sich das Glas befindet. Hier ist, was Sie tun müssen -

Gehen Sie zu Ihrem Projektordner aus, wo Sie Maven Befehle ausführen kann diese

Sie (wenn Sie ein ls tun -ltr in diesem Ordner, sollten Sie pom.xml sehen) -

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 

Sobald dies erledigt ist, können Sie die Abhängigkeit in Ihrem pom.xml hinzufügen können, so etwas wie dieses -

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

Nur ein Hinweis: Nachdem ich diese Schritte ausgeführt hatte, hatte ich immer noch den gleichen Fehler in der Finsternis, bis ich 'Maven> Update Project' ausführte. Dann hat alles wunderbar funktioniert. Dieser Schritt mag offensichtlich sein, aber ich dachte, ich würde ihn hinzufügen. – mb595x

+2

... zum "Hello Future Reader Post" hinzuzufügen. Dies scheiterte beim Ausführen der Powershell, funktionierte aber wie erwartet beim Ausführen der normalen Windows CMD-Shell. Keine Powershell für Sie! – phareim

+0

Für Leute, die versuchen, dies unter Windows zu tun, ist der Rat von Phareim Gold. Ich habe dies funktioniert auf Windows 7 läuft maven 3.3.3 durch Eingabe des Befehls mvn in der Eingabeaufforderung. powershell hat immer den Fehler 'pom not found' geworfen. –

2

Zuerst die besondere jar von Oracle-Website (ojdbc.jar Version herunterladen müssen 11.2.0.3)

, wenn Sie es auf C herunterladen: \ filefolder

in das Verzeichnis gehen in cmd prompt und bieten die folgenden command.It wird installieren die dependency.Then Sie Ihr Projekt aufbauen können.

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

E:\WORK\EclipseL_Work\ro>mvn install:install-file -Dfile=C:\Users\xxxx\Downloa ds\lib\ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar

die ORACLE JAR Problem mit dem Frühling Anwendung,

Oracle JDBC ojdbc6 Jar als Maven Dependency

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

+0

Maven ist sehr wählerisch bei Versionen, die nicht immer einfach zu erraten sind. Netter Fang, dass die Version 11.2.0 ist nicht 11.2.0.3 –

2

Unter Config für mich gearbeitet zu lösen. Weitere Informationen finden Sie unter link.

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

Das ist neu, seit ich die Frage gestellt habe. Nett! – Marvo

0

Add Nach Abhängigkeit in pom.xml

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