Saya mencoba untuk menambahkan ketergantungan driver MS SQL di file POM.xml saya dan berikut ini adalah ketergantungannya.
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
tapi saya mendapatkan pengecualian ini
Artefak yang hilang com.microsoft.sqlserver: sqljdbc4: jar: 4.0
Saya benar-benar tidak mengerti masalahnya.
sumber
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4 :install-file (default-cli) on project standalone-pom: The specified file 'C:\Us ers\anthony\sqljdbc4.jar' not exists -> [Help 1]
-Dfile=C:\Users\anthony\Downloads\sqljdbc4.jar
misalnya.Microsoft baru-baru ini membuka sumber driver jdbc mereka .
Anda sekarang dapat menemukan pengemudi di maven central:
atau untuk java 7:
sumber
Saya memiliki masalah yang sama dan menyelesaikannya dengan mengikuti.
* Berikutnya -> Isi
Artifact file:
jalur detail berikut dari jar yang Anda unduh (Contoh: E: \ lib \ sqljdbc4.jar dalam kasus saya)Group Id:
com.microsoft.sqlserverArtifact Id:
sqljdbc4Version:
4.0Terima kasih!
sumber
Jawaban di atas hanya menambahkan sqljdbc4.jar ke repositori lokal . Akibatnya, saat membuat jar proyek akhir untuk distribusi, sqljdbc4 akan hilang lagi seperti yang ditunjukkan dalam komentar oleh @Tony mengenai error runtime.
Microsoft (dan Oracle serta penyedia pihak ketiga lainnya) membatasi distribusi perangkat lunak mereka sesuai dengan ENU / EULA. Oleh karena itu modul perangkat lunak tersebut tidak ditambahkan ke dalam stoples yang diproduksi Maven untuk distribusi. Ada peretasan untuk menyiasatinya (seperti menyediakan lokasi file jar pihak ke-3 saat runtime), tetapi sebagai pengembang Anda harus berhati-hati dalam melanggar lisensi.
Pendekatan yang lebih baik untuk konektor / driver jdbc adalah dengan menggunakan jTDS , yang kompatibel dengan sebagian besar DBMS, lebih dapat diandalkan, lebih cepat (sesuai benchmark), dan didistribusikan di bawah lisensi GNU. Ini akan membuat hidup Anda lebih mudah untuk menggunakan ini daripada mencoba menumbuk pasak persegi ke dalam lubang bundar mengikuti salah satu teknik lain di atas.
sumber
Anda juga dapat membuat repositori proyek. Ini berguna jika lebih banyak pengembang yang mengerjakan proyek yang sama, dan pustaka harus disertakan dalam proyek.
Pertama, buat struktur repositori di direktori lib proyek Anda, lalu salin pustaka ke dalamnya. Pustaka harus memiliki format nama berikut:
<artifactId>-<version>.jar
<your_project_dir>/lib/com/microsoft/sqlserver/<artifactId>/<version>/
Buat file pom di sebelah file perpustakaan, dan masukkan informasi berikut ke dalamnya:
Pada titik ini, Anda harus memiliki struktur direktori ini:
<your_project_dir>/lib/com/microsoft/sqlserver/sqljdbc4/4.2/sqljdbc4-4.2.jar
<your_project_dir>/lib/com/microsoft/sqlserver/sqljdbc4/4.2/sqljdbc4-4.2.pom
Buka file pom proyek Anda dan tambahkan repositori baru:
Terakhir, tambahkan ketergantungan pada pustaka:
Perbarui 4.3.2017
Sepertinya pustaka dapat diperoleh dari repositori yang tersedia untuk umum. @ Lihat jawaban nirmal dan Jacek Grzelaczyk untuk lebih jelasnya.
sumber
tambahkan saja
sumber
Jika Anda mengalami beberapa masalah saat menyertakan ketergantungan untuk 6.1.0.jre7 dari @nirmals jawaban di https://stackoverflow.com/a/41149866/1570834 , di pom Anda dengan commons-codec / azure-keyvault, saya lebih suka menggunakan ini :
sumber
Tidak terlalu sulit. Saya belum membaca lisensinya. Namun saya telah membuktikan ini berhasil. Anda dapat menyalin file jar sqljdbc4 ke berbagi jaringan atau direktori lokal. Build.gradle Anda akan terlihat seperti ini:
di bawah direktori sharedir / rilis, saya memiliki direktori yang mirip dengan struktur maven yaitu \ sharedir \ release \ com \ microsoft \ sqlserver \ sqljdbc4 \ 4.0 \ sqljdbc4-4.0.jar
semoga berhasil.
David Yen
sumber
Untuk proyek Maven mandiri, saya biasanya menginstal semua dependensi jar eksternal ke dalam repositori proyek. Untuk driver SQL Server JDBC, Anda dapat melakukan:
local-repo
di proyek Maven Andasqljdbc42.jar
kelocal-repo
folderlocal-repo
folder, jalankanmvn deploy:deploy-file -Dfile=sqljdbc42.jar -DartifactId=sqljdbc42 -DgroupId=com.microsoft.sqlserver -DgeneratePom=true -Dpackaging=jar -Dversion=6.0.7507.100 -Durl=file://.
untuk menerapkan JAR ke dalam repositori lokal (disimpan bersama dengan kode Anda di SCM)sqljdbc42.jar
dan file yang diunduh dapat dihapuspom.xml
dan menambahkan referensi ke repositori lokal proyek:xml <repositories> <repository> <id>parent-local-repository</id> <name>Parent Local repository</name> <layout>default</layout> <url>file://${basedir}/local-repo</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>
Sekarang Anda dapat menjalankan proyek Anda di mana saja tanpa konfigurasi atau instalasi tambahan.sumber
Anda dapat menggunakan driver lain
dan dalam xml
sumber