Maven: net.sf.json-lib tidak ada

101

Saya menemukan net.sf.json-lib di repositori pusat . Salin-tempel dependensi (dengan versi 2.3), dan kemudian ketika saya membangun saya mendapatkan kesalahan ini:

[INFO] Unable to find resource 'net.sf.json-lib:json-lib:jar:2.2.3' in repository central (http://repo1.maven.org/maven2)

[ERROR] BUILD ERROR
[INFO] ---------------------------------------------------------
[INFO] Failed to resolve artifact.

Missing:
----------
1) net.sf.json-lib:json-lib:jar:2.3

  Try downloading the file manually from the project website.

Saya mencoba menggunakan versi 2.2.3, tetapi saya mendapatkan kesalahan yang sama. Mengapa saya mendapatkan kesalahan ini? Saya dapat menggantinya dengan menginstalnya secara lokal, tetapi saya ingin memahami apa masalahnya.

Edit - Saya menghapus paket dari repositori lokal saya, dan mencoba lagi, kali ini mendapatkan kesalahan checksum. Saya kira saya harus mengajukan laporan bug dengan json-lib.

[WARNING] *** CHECKSUM FAILED - Error retrieving checksum file for net/sf/json-lib/json-lib/2.3/json
-lib-2.3.pom - IGNORING
ripper234
sumber
Sepertinya file di maven central memiliki checksum yang salah ... Anda harus memutuskan apakah Anda tetap mempercayainya atau tidak.
khmarbaise

Jawaban:

268

Melihat repo maven-central:

http://repo1.maven.org/maven2/net/sf/json-lib/json-lib/2.4/

Anda perlu menentukan pengklasifikasi untuk ketergantungan ini: jdk13 atau jdk15, seperti ini:

    <dependency>
        <groupId>net.sf.json-lib</groupId>
        <artifactId>json-lib</artifactId>
        <version>2.4</version>
        <classifier>jdk15</classifier>
    </dependency>
Petar Tahchiev
sumber
2
Saya mengalami masalah yang sama. Masuk BuildConfig.groovy, saya lakukan: dependencies { runtime group:'net.sf.json-lib', name:'json-lib', version:'2.4', classifier:'jdk15' }tetapi tidak berhasil. Saya mengerti Failed to resolve dependency.. Tahu kenapa?
Alexandre Bourlier
2
Baik. Itu tidak membantu bahwa search.maven.org/… berbohong kepada kita, dan menghilangkan pengklasifikasi.
djsadinoff
FYI, bagi mereka yang menggunakan Play Framework 1.x, Anda tidak dapat menggunakan jar ini dari pusat maven - play.lighthouseapp.com/projects/57987-play-framework/tickets/…
ripper234
Bagus! Ingin tahu mengapa pengklasifikasi tidak disetel saat saya pertama kali menambahkan dependensi yang memiliki jdk15.
heyomi
2
Apa yang setara dengan ivy?
Ron Romero
25

Untuk gradle sebagai sampel

kompilasi 'net.sf.json-lib: json-lib: 2.4: jdk15'

ATAU

kompilasi grup: 'net.sf.json-lib', nama: 'json-lib', versi: '2.4', classifier: 'jdk15'

Saya mencari lebih banyak pengklasifikasi tidak dapat menemukan apa pun selain jdk15 (jangan mencari atau jdk16 atau jdk17)

Rinat Mukhamedgaliev
sumber
Ini tidak berhasil untuk saya. Saya harus menginstal file secara lokal mirip dengan saran @ icyrock.com, lalu meletakkan mavenLocal()sebelumnya mavenCentral()di repositoriesbagian.
ben3000
Hanya untuk dokumentasi: setidaknya ada satu bug di Gradle yang terkait dengan dependensi transitif, sejauh yang saya tahu, json-lib tidak menyediakan data classifier apa pun di POM-nya (lihat ini dan ini ). Saya juga tidak dapat menemukan cara untuk menentukan apakah Gradle memeriksa kesalahan checksum seperti yang disebutkan di atas.
ben3000
2

Batalkan komentar khimarbaise tentang kepercayaan, Anda dapat menginstalnya secara lokal menggunakan maven install:

mvn install:install-file  -Dfile=path-to-your-artifact-jar
                          -DgroupId=your.groupId
                          -DartifactId=your-artifactId
                          -Dversion=version
                          -Dpackaging=jar
                          -DlocalRepositoryPath=path-to-specific-local-repo
icyrock.com
sumber
2
Saya sudah memiliki file jar (saya mengonversi proyek ke maven), jadi saya menginstal apa yang saya miliki. Terima kasih.
ripper234
1

Untuk pengguna ivy, setelah mencoba banyak iterasi berbeda untuk mengkonfigurasi ivy.xml saya untuk menemukan ketergantungan ini dengan benar, ini akhirnya berhasil untuk saya:

  <dependency org="net.sf.json-lib" name="json-lib" rev="2.4">
        <artifact name="json-lib" url="http://repo1.maven.org/maven2/net/sf/json-lib/json-lib/2.4/json-lib-2.4-jdk15.jar"/>     
    </dependency>
danbsd
sumber
Saya pikir URL yang terprogram bukanlah solusi optimal, ini juga berfungsi di Ivy: <dependency org = "net.sf.json-lib" name = "json-lib" rev = "2.3"> <artifact name = "json- lib "maven: classifier =" jdk15 "type =" jar "ext =" jar "/> </dependency>
stumbav
@stumbav, ini tidak berhasil untuk saya. Ini memberikan kesalahan: parsed: [[Kesalahan Fatal] ivy.xml: 19: 137: Awalan "maven" untuk atribut "maven: classifier" terkait dengan jenis elemen "artefak" tidak terikat
Jitesh Sojitra