Maven Bağımlılığı Olarak Oracle JDBC ojdbc6 Jar


103

Maven'in ojdbc6.jar dosyasını projemin savaş dosyasında paketlemesini sağlayamıyorum. Doğrudan Hazırda Bekletme araçları için bir bağımlılık belirlerken POM dosyası içinde çalışmasını sağlıyorum. Ama projenin savaş dosyasıyla birlikte gelmeyecek ve bu nedenle projem Tomcat üzerinde çalışmayacak.

Bu soru için burada belirtilenler de dahil olmak üzere internette bulabildiğim her çözümü denedim:

Maven deposunda Oracle JDBC sürücüsünü bulun

Son zamanlarda şunları yaptım:

  1. Jar dosyasını makineme indirin

  2. Jar'ı yerel depoma yüklemek için aşağıdaki komutu çalıştırın:

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

    (Bu komutun her türlü çeşidini de denedim.)

  3. Son olarak, bağımlılığı pom dosyama koydum:

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>
  4. Temiz bir yapı çalıştırıyorum, ancak başarısız oluyor:

    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]

Bu neden çalışmıyor? Odanın karşısına pahalı bilgisayar parçaları fırlatmaya hazırım. Bu çok zaman kaybetti. (Teşekkürler Oracle. Size tekrar ne kadar ödedik?)

Belki de Mac kullandığım için mi?


6
Dosyanın ojdbc6-11.2.0.3.jaryerel deponuzda doğru klasörde olup olmadığını kontrol edebilir misiniz ?
Raghuram

1
Jar dosyası hiçbir zaman arşive kopyalanmıyor. Sadece ona referans veriyor gibi görünen bir grup dosya. Dosyanın tam olarak bu şekilde çağrılması gerekiyor mu? Sadece lib dizinimde ojdbc6.jar var.
Marvo

15
Hmm! bu yüzden mvn install:install-fileişe yaramadı. Onu ojdbc6.jariçeren klasörün mutlak konumunu vermeli veya komutu çalıştırmalısınız. Dosya adı sorun değil. -XBilgi hatalarını ayıklamak için bir bayrakla çalıştırabilirsiniz .
Raghuram

Koştuğunuzda herhangi bir çıktı var mı install-file? Maven, dosyayı nereye yüklediğini veya herhangi bir hata olup olmadığını size söylemelidir.
nwinkler

1
İlişkili olmayan bir not olarak: Bir depo aynası (Nexus, Artifactory, Archiva, ... gibi bir şey) kullanmaya bakmalısınız. Dosyayı oraya yükleyebilirsiniz ve sadece sizin için değil, aynı aynayı kullanan herkes için de erişilebilir olacaktır.
nwinkler

Yanıtlar:


136

Yerel deponuza kurmak yerine projenize yeni Maven deposu (tercihen kendi yapıtınızı kullanarak) eklemek daha iyidir.

Maven sözdizimi:

<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 örneği:

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

3
Nihayetinde yaptığımız buydu. Burada bir depo kuruyoruz ve artık tüm projelerimiz onu kullanıyor. Bununla birlikte, her ikisinin de nasıl yapılacağını bilmenin faydalı olduğunu düşünüyorum.
Marvo

3
Bu lds.org deposu yasal mı? Bu cevaba göre yasa dışı: stackoverflow.com/a/1074971/1415732
Alden

2
Merak ediyorum, eğer şirket depoma bağımlılık kurarsam, bu da yasadışı olur mu? Ya da sadece halka açık depolar yasa dışı mı? Kütüphaneleri için halka açık Maven havuzlarının olmaması Oracle'ın hatasıdır. Birinin bu kitaplığı kendi havuzunda paylaşmasını tercih ederim (ve sürekli erişilebilir).
Ondrej Kvasnovsky

3
Ondrej: Anladığım kadarıyla sadece arşiv halka açıksa yasa dışıdır. Şirketim ojdbc'yi sizin önerdiğiniz şekilde özel bir maven deposunda (yapay) barındırıyor.
Ray Myers

3
Elbette projenize rastgele bir repo eklemek "daha iyi" olur, evet. Vay canına, bu pek çok seviyede yanlış
zb226

41

İleride bu yazıyı okuyan biri için kavanozun bulunduğu dizine cd koymanıza gerek yoktur. Yapman gerekenler işte burada -

Maven komutlarını çalıştırabileceğiniz proje klasörünüze gidin (Bu klasörde bir ls -ltr yaptığınızda, pom.xml'yi görmelisiniz)

Bunu yap -

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

Bu yapıldıktan sonra, bağımlılığı pom.xml dosyanıza ekleyebilirsiniz, buna benzer bir şey -

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

3
Sadece bir not: Bu adımları izledikten sonra, gerçekleştirdiğim zamana kadar tutulmada hala aynı hatayı yaşadım Maven > Update Project. Sonra her şey çok güzel çalıştı. Bu adım apaçık olabilir ama ekleyeceğimi düşündüm.
user12893298320392

2
... "merhaba gelecekteki okuyucu gönderisine" eklemek için. bu powershell'i çalıştırmada başarısız oldu, ancak sıradan Windows CMD-kabuğunu çalıştırırken beklendiği gibi çalıştı. Size powershell yok!
phareim

Bunu pencerelerde yapmaya çalışan insanlar için phareim'in tavsiyesi altındır. Bunu, komut istemine mvn komutunu yazarak maven 3.3.3 çalıştıran Windows 7 üzerinde çalıştırdım. powershell 'pom bulunamadı' hatası vermeye devam etti.
Görev Sökücü

Bahsedilen sıra önemlidir. Önce bağımlılığı ekledim, sonra mvn intsall komutunu çalıştırdım, Hata kaybolmadı. Bağımlılığı kaldırmayı denedim, kaydedin ve ardından tekrar ekleyin ve kaydedin. Tüm hatalar çözüldü (projenizin "otomatik olarak
oluştur

24

Doğru cevap, Raghuram tarafından orijinal soruma yorumlar bölümünde verildi.

Sebep ne olursa olsun, fiziksel ojdbc6.jar dosyasının tam yoluna "mvn install" işaretini işaret etmek benim için işe yaramadı. (Ya da komutu çalıştırırken sürekli olarak tekrar tekrar açtım, ancak herhangi bir hata verilmedi.)

ojdb6.jar dosyasını tuttuğum dizine cd-ing ve oradan komutu çalıştırmak ilk seferinde çalıştı.

Raghuram bu soruyu cevaplamak isterse, onun cevabını kabul ederim. Herkese teşekkürler!


1
Teşekkürler @Raghuram ve Marvo
örümcek adam

7
mvn install:install-file 
-Dfile=C:\Users\xxxx\Downloads\lib\ojdbc6.jar 
-DgroupId=com.oracle
-DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar

ORACLE JAR sorununu Bahar Uygulaması ile çözmek için,

Maven Bağımlılığı Olarak Oracle JDBC ojdbc6 Jar

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

Maven, tahmin edilmesi her zaman kolay olmayan sürümler konusunda çok seçici. Versiyonun 11.2.0.3 değil, 11.2.0 olduğu güzel yakalandı
Michael Shopsin

5

Öncelikle, belirli bir jar dosyasını Oracle sitesinden indirmeniz gerekir (ojdbc.jar sürüm 11.2.0.3)

C: \ dosya klasörüne indirirseniz

cmd komut isteminde o dizine gidin ve aşağıdaki komutu verin. Bağımlılığı kuracak, ardından projenizi oluşturabilirsiniz.

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

2

Yürütmeden sonra

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

ojdbc6.jar dosyasının var olup olmadığını görmek için .m2 depo klasörünüzü (/com/oracle/ojdbc6/11.2.0.3) kontrol edin. $ M2_HOME / conf / settings.xml altında maven deposu ayarlarınızı kontrol etmezseniz


2

Aşağıdaki yapılandırma benim için çalıştı. Daha fazla ayrıntı için bu bağlantıya bakın .

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

Soruyu sorduğumdan beri bu yeni. Güzel!
Marvo

2

Oracle lisanslı ürün olduğu için doğrudan maven bağımlılığı eklenmesi sorunu yaşanmaktadır. Ojdbc.jar'ın herhangi bir sürümünü eklemek için aşağıdaki 2 adım yapılabilir.

  1. Ojdbc.jar'ı yerel maven deposuna kurmak için aşağıdaki komutu çalıştırın.
/opt/apache-maven/bin/mvn install:install-file
    -Dfile=<path-to-file>/ojdbc7.jar
    -DgroupId=com.oracle
    -DartifactId=ojdbc7
    -Dversion=12.1.0.1.0
    -Dpackaging=jar

Bu, bağımlılığı yerel depoya ekleyecektir.

  1. Şimdi, bağımlılığı pom dosyasına ekleyin
<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>12.1.0.1.0</version>
</dependency>

1

Aşağıdaki komutu takip ettim, işe yaradı:

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

Kurulumdan sonra kavanozun M2_repo'nuza doğru şekilde takılıp takılmadığını kontrol edin.


1

Bağımlılığı sürüm etiketi olmadan kullanmayı denedim ve benim için iyi çalıştı.

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

0

Pom.xml dosyasına aşağıdaki bağımlılığı ekleyin

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

0

C sürücüsü-> kullanıcı-> PcName-> bul .m2'ye gidin ve indirilen ojdbc jar dosyasını buraya yapıştırın, Sunucu otomatik olarak bunu seçecektir.


-1

Oracle JDBC sürücüleri ve diğer tamamlayıcı Kavanozlar, Central Maven'da mevcuttur. 11.2.0.4, 12.2.0.2, 18.3.0.0, 19.3.0.0, 19.6.0.0 ve 19.7.0.0'dan resmi olarak desteklenen Oracle JDBC sürümlerini kullanmanızı öneririz. Bunlar Merkezi Maven Deposunda mevcuttur . Daha fazla ayrıntı için Maven Merkezi Kılavuzuna bakın.

En son sürümü kullanmanız tavsiye edilir. Check out SSS JDK uyumluluk için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.