Maven: net.sf.json-lib mancante


101

Ho trovato net.sf.json-lib nel repository centrale . Copia-incolla la dipendenza (con la versione 2.3), quindi quando compilo ottengo questo errore:

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

Ho provato a utilizzare la versione 2.2.3, ma ricevo lo stesso errore. Perché ricevo questo errore? Posso sovrascriverlo installandolo localmente, ma voglio capire qual è il problema.

Modifica : ho eliminato il pacchetto dal mio repository locale e ho riprovato, questa volta ottenendo un errore di checksum. Immagino che dovrei presentare una segnalazione di bug con json-lib.

[WARNING] *** CHECKSUM FAILED - Error retrieving checksum file for net/sf/json-lib/json-lib/2.3/json
-lib-2.3.pom - IGNORING

Sembra che il file in Maven Central abbia un checksum errato ... devi decidere se ti fidi comunque o no.
khmarbaise

Risposte:


268

Guardando il repository centrale di Maven:

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

è necessario specificare un classificatore per questa dipendenza: jdk13 o jdk15, in questo modo:

    <dependency>
        <groupId>net.sf.json-lib</groupId>
        <artifactId>json-lib</artifactId>
        <version>2.4</version>
        <classifier>jdk15</classifier>
    </dependency>

2
Sto avendo lo stesso problema. In BuildConfig.groovy, lo faccio: dependencies { runtime group:'net.sf.json-lib', name:'json-lib', version:'2.4', classifier:'jdk15' }ma inutilmente. Capisco Failed to resolve dependency.. Qualche idea sul perché?
Alexandre Bourlier

2
Destra. Non aiuta il fatto che search.maven.org/… ci stia mentendo e ometta il classificatore.
djsadinoff

Cordiali saluti, per coloro che utilizzano Play Framework 1.x, non è possibile utilizzare questo jar da Maven Central: play.lighthouseapp.com/projects/57987-play-framework/tickets/…
ripper234

Bello! Mi chiedo perché il classificatore non è stato impostato quando ho inizialmente aggiunto la dipendenza che aveva jdk15.
heyomi

2
Qual è l'equivalente dell'edera?
Ron Romero

25

Per gradle come campione

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

O

gruppo di compilazione: "net.sf.json-lib", nome: "json-lib", versione: "2.4", classificatore: "jdk15"

Ho cercato più classificatori non riuscivo a trovare nient'altro che jdk15 (non cercare o jdk16 o jdk17)


Questo non ha funzionato per me. Ho dovuto installare il file localmente simile a @ di icyrock.com suggerimento, poi mettere mavenLocal()prima mavenCentral()nelle repositoriessezioni.
ben3000

Solo per la documentazione: c'è almeno un bug in Gradle associato a dipendenze transitive, inoltre per quanto ne so, json-lib non fornisce alcun dato di classificatore nel suo POM (vedi questo e questo ). Inoltre non sono riuscito a trovare un modo per determinare se Gradle controlla gli errori di checksum come menzionato sopra.
ben3000

2

Salvo il commento di khimarbaise sull'affidabilità, puoi installarlo localmente usando 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

2
Avevo già il file jar (sto convertendo il progetto in maven), quindi ho installato quello che avevo. Grazie.
ripper234

1

Per gli utenti di ivy, dopo aver provato molte iterazioni diverse per configurare il mio ivy.xml per trovare correttamente questa dipendenza, questo ha finalmente funzionato per me:

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

Penso che l'URL cablato non sia una soluzione ottimale, funziona anche in 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, questo non funziona per me. Fornisce l'errore: parsed: [[Errore irreversibile] ivy.xml: 19: 137: Il prefisso "maven" per l'attributo "maven: classifier" associato a un tipo di elemento "artefatto" non è associato
Jitesh Sojitra,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.