Oracle JDBC ojdbc6 Jar sebagai Dependensi Maven

103

Sepertinya saya tidak bisa membuat Maven memaketkan file ojdbc6.jar ke dalam file perang proyek saya. Saya memilikinya bekerja di dalam file POM ketika menentukan ketergantungan langsung untuk alat Hibernate. Tetapi itu tidak akan dibundel dengan file perang proyek, dan karena itu proyek saya tidak akan berjalan di Tomcat.

Saya telah mencoba setiap solusi yang dapat saya temukan di sana di internet, termasuk yang ditentukan untuk pertanyaan ini di sini:

Temukan driver Oracle JDBC di repositori Maven

Baru-baru ini, saya melakukan hal berikut:

  1. Unduh file jar ke komputer saya

  2. Jalankan perintah berikut untuk menginstal jar ke dalam repositori lokal saya:

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

    (Saya juga telah mencoba semua jenis varian dari perintah itu.)

  3. Akhirnya, saya memasukkan ketergantungan ke file pom saya:

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>
  4. Saya menjalankan build yang bersih, tetapi gagal:

    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]

Mengapa ini tidak berhasil? Saya siap membuang komponen komputer yang mahal ke seberang ruangan. Ini telah menyia-nyiakan banyak waktu. (Terima kasih, Oracle. Berapa kami membayarmu lagi?)

Apakah karena saya menggunakan Mac, mungkin?

Marvo
sumber
6
Dapatkah Anda memeriksa apakah file ojdbc6-11.2.0.3.jartersebut tersedia di repositori lokal Anda di folder yang benar?
Raghuram
1
File jar sepertinya tidak pernah disalin ke repositori. Hanya sekumpulan file yang tampaknya mereferensikannya. Apakah file tersebut perlu dinamai persis seperti itu? Ini hanya ojdbc6.jar di direktori lib saya.
Marvo
15
Hmm! jadi mvn install:install-filetidak berhasil. Anda harus memberikan lokasi absolut ojdbc6.jaratau menjalankan perintah dari folder yang berisi itu. Nama file tidak menjadi masalah. Anda bisa menjalankan dengan -Xbendera sehingga Anda bisa men-debug info.
Raghuram
Apakah ada keluaran saat Anda menjalankan install-file? Maven harus memberi tahu Anda di mana ia menginstal file atau apakah ada kesalahan.
nwinkler
1
Sebagai catatan yang tidak terkait: Anda harus melihat ke dalam menggunakan cermin repositori (seperti Nexus, Artifactory, Archiva, ...). Anda dapat mengunggah file di sana dan itu akan tersedia tidak hanya untuk Anda, tetapi untuk semua orang yang menggunakan mirror yang sama juga.
nwinkler

Jawaban:

136

Lebih baik menambahkan repositori Maven baru (lebih disukai menggunakan artifactory Anda sendiri) ke proyek Anda daripada menginstalnya ke repositori lokal Anda.

Sintaks Maven:

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

Contoh Grails:

mavenRepo "https://code.lds.org/nexus/content/groups/main-repo"
build 'com.oracle:ojdbc6:11.2.0.3'
Ondrej Kvasnovsky
sumber
3
Pada akhirnya itulah yang kami lakukan. Kami menyiapkan repositori di sini, dan semua proyek kami sekarang menggunakannya. Saya pikir itu berguna untuk mengetahui bagaimana melakukan keduanya.
Marvo
3
Apakah gudang lds.org itu legal? Menurut jawaban ini, ini ilegal: stackoverflow.com/a/1074971/1415732
Alden
2
Saya bertanya-tanya, jika saya akan menginstal ketergantungan ke repositori perusahaan saya, apakah itu juga ilegal? Atau hanya repo publik yang ilegal? Ini adalah kesalahan Oracle bahwa mereka tidak memiliki repositori Maven publik untuk perpustakaan mereka. Saya lebih suka menghargai seseorang yang membagikan pustaka itu di repositori mereka (dan itu dapat diakses secara konstan).
Ondrej Kvasnovsky
3
Ondrej: Menurut pemahaman saya, itu hanya ilegal jika repositori adalah publik. Perusahaan saya menjadi tuan rumah ojdbc dalam repo maven pribadi (buatan) seperti yang Anda sarankan.
Ray Myers
3
Tentu saja "lebih baik" menambahkan beberapa repo sewenang-wenang ke proyek Anda, ya. Wow, ini salah pada banyak level
zb226
41

Bagi siapa pun yang membaca posting ini di masa mendatang, Anda tidak perlu cd ke direktori di mana toples tersebut berada. Inilah yang perlu Anda lakukan -

Buka folder proyek Anda dari mana Anda dapat menjalankan perintah maven (Ketika Anda melakukan ls -ltr di folder ini, Anda akan melihat pom.xml)

Melakukan hal ini -

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

Setelah ini selesai, Anda dapat menambahkan dependensi di pom.xml Anda, seperti ini -

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>
rickygrimes
sumber
3
Sekadar catatan: Setelah mengikuti langkah-langkah ini, saya masih memiliki kesalahan yang sama di gerhana sampai saya tampil Maven > Update Project. Kemudian semuanya bekerja dengan baik. Langkah ini mungkin sudah jelas, tetapi saya pikir saya akan menambahkannya.
pengguna12893298320392
2
... untuk ditambahkan ke "halo postingan pembaca masa depan". ini gagal menjalankan PowerShell, tetapi bekerja seperti yang diharapkan menjalankan Windows CMD-shell biasa. Tidak ada PowerShell untuk Anda!
phareim
bagi orang yang mencoba melakukan ini di jendela, saran phareim adalah emas. Saya mendapatkan ini bekerja pada windows 7 yang menjalankan maven 3.3.3 dengan mengetikkan perintah mvn di command prompt. PowerShell terus menampilkan kesalahan 'pom not found'.
Quest Monger
Urutan yang disebutkan itu penting. Saya telah menambahkan ketergantungan terlebih dahulu kemudian menjalankan perintah mvn intsall, Kesalahan tidak hilang. Mencoba menghapus ketergantungan, simpan lalu tambahkan kembali dan simpan. Semua kesalahan diselesaikan (asalkan proyek Anda disetel ke "dibangun secara otomatis")
Kailas
24

Jawaban yang benar diberikan oleh Raghuram di bagian komentar untuk pertanyaan asli saya.

Untuk alasan apa pun, mengarahkan "mvn install" ke jalur lengkap file fisik ojdbc6.jar tidak berfungsi untuk saya. (Atau saya secara konsisten berulang kali gagal saat menjalankan perintah, tetapi tidak ada kesalahan yang dikeluarkan.)

cd-ing ke direktori tempat saya menyimpan ojdb6.jar dan menjalankan perintah dari sana berfungsi pertama kali.

Jika Raghuram ingin menjawab pertanyaan ini, saya akan menerima jawabannya. Terimakasih semuanya!

Marvo
sumber
1
Terima kasih @Raghuram dan Marvo
spiderman
7
mvn install:install-file 
-Dfile=C:\Users\xxxx\Downloads\lib\ojdbc6.jar 
-DgroupId=com.oracle
-DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar

untuk menyelesaikan masalah ORACLE JAR dengan Aplikasi Musim Semi,

Oracle JDBC ojdbc6 Jar sebagai Dependensi Maven

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0</version>
    </dependency>`
Sushil Gulhane
sumber
Maven sangat pilih-pilih tentang versi yang tidak selalu mudah ditebak. Tangkapan bagus bahwa versinya adalah 11.2.0 bukan 11.2.0.3
Michael Shopsin
5

Pertama, Anda perlu mengunduh jar tertentu dari situs Oracle (ojdbc.jar versi 11.2.0.3)

jika Anda mendownloadnya ke C: \ filefolder

pergi ke direktori itu di cmd prompt dan berikan perintah di bawah ini. Ini akan menginstal dependensi. Kemudian Anda dapat membangun proyek Anda.

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

Setelah mengeksekusi

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

periksa folder repositori .m2 Anda (/com/oracle/ojdbc6/11.2.0.3) untuk melihat apakah ojdbc6.jar ada. Jika tidak, periksa pengaturan repositori maven Anda di bawah $ M2_HOME / conf / settings.xml

Jayen Chondigara
sumber
2

Konfigurasi di bawah berhasil untuk saya. Lihat tautan ini untuk lebih jelasnya.

<dependency>
 <groupId>com.oracle.jdbc</groupId>
 <artifactId>ojdbc7</artifactId>
 <version>12.1.0.2</version>
</dependency>
Barani r
sumber
Itu baru sejak saya mengajukan pertanyaan. Bagus!
Marvo
2

Karena Oracle adalah produk berlisensi, ada masalah dalam menambahkan ketergantungan maven secara langsung. Untuk menambahkan versi ojdbc.jar, di bawah ini 2 langkah bisa dilakukan.

  1. Jalankan perintah di bawah ini untuk menginstal ojdbc.jar ke dalam repositori maven lokal.
/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

Ini akan menambah ketergantungan ke dalam repositori lokal.

  1. Sekarang, tambahkan dependensi di file pom
<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>12.1.0.1.0</version>
</dependency>
Mohamed
sumber
1

Saya mengikuti perintah di bawah ini, itu berhasil:

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

Setelah penginstalan, periksa bahwa jar telah diinstal dengan benar di M2_repo Anda.

kuser699
sumber
1

Saya telah mencoba menggunakan dependensi tanpa tag versi dan berfungsi dengan baik untuk saya.

<dependency>
    <groupId>com.oracle.ojdbc</groupId>
    <artifactId>ojdbc8</artifactId>
</dependency>
Veswanth
sumber
0

Tambahkan dependensi Mengikuti di pom.xml

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>oracle</artifactId>
    <version>10.2.0.2.0</version>
</dependency>
Kiran P. Fegade
sumber
0

Buka drive C-> pengguna-> PcName-> temukan .m2 dan Tempel file jar ojdbc yang diunduh di sana, Server akan secara otomatis memilih ini.

Hassan Ahmed
sumber
-1

Driver Oracle JDBC dan Jars pendamping lainnya tersedia di Central Maven. Kami menyarankan untuk menggunakan versi JDBC Oracle resmi yang didukung dari 11.2.0.4, 12.2.0.2, 18.3.0.0, 19.3.0.0, 19.6.0.0, dan 19.7.0.0. Ini tersedia di Central Maven Repository . Lihat Panduan Pusat Maven untuk lebih jelasnya.

Disarankan untuk menggunakan versi terbaru. Lihat FAQ untuk kompatibilitas JDK.

Nirmala
sumber