2010-11-13 10 views
87

Ho trovato net.sf.json-lib in the central repository. Copy-incollato la dipendenza (con la versione 2.3), e poi quando ho costruire ottengo questo errore:Maven: manca net.sf.json-lib

[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 ad utilizzare la versione 2.2.3, ma sto ottenendo 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 provato di nuovo, questa volta ottenendo un errore di checksum. Credo 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 
+0

Sembra che il file nel centro di Maven ha un checksum errato. .. devi decidere se ti fidi comunque o no. – khmarbaise

risposta

224

Guardando il Maven centro-repo:

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

è necessario specificare un classificatore per questo depependency: o 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> 
+21

+1 Adoro questo sito! :) – Kaitsu

+0

Sto avendo lo stesso problema. In 'BuildConfig.groovy', faccio:' dependencies { gruppo di runtime: 'net.sf.json-lib', nome: 'json-lib', versione: '2.4', classificatore: 'jdk15' } ' ma senza risultato. Ottengo 'Impossibile risolvere la dipendenza. Qualche idea sul perché? –

+2

Giusto. Non è di aiuto che http://search.maven.org/#artifactdetails%7Cnet.sf.json-lib%7Cjson-lib%7C2.4%7Cjar ci stia mentendo e omettendo il classificatore. – djsadinoff

2

Blocco commento di khimarbaise su affidabilità, è possibile installarlo localmente usando Maven installare:

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

Ho già il file jar (sto convertendo il progetto in Maven), quindi ho installato quello che avevo. Grazie. – ripper234

20

Per Gradle come campione

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

O

compile group: 'net.sf.json-lib', name: 'json-lib', version: '2.4', classifier: 'jdk15'

ho cercato per più classificatore non è stato possibile trovare nient'altro che jdk15 (non andare a cercare o jdk16 o jdk17)

+0

Questo non ha funzionato per me. Ho dovuto installare il file localmente come @icyrock.suggerimento di com, quindi metti 'mavenLocal()' prima di 'mavenCentral()' nelle sezioni 'repositories'. – ben3000

+0

Solo per documentazione: c'è almeno un [bug in Gradle] (https://issues.gradle.org/browse/GRADLE-3188) associato a dipendenze transitive, anche per quanto posso dire, json-lib doesn ' t fornire tutti i dati del classificatore nel suo POM (si veda [questo] (http://stackoverflow.com/questions/3092085/building-same-project-in-maven-with-different-artifactid-based-on-jdk-used) e [this] (http://search.maven.org/#artifactdetails|net.sf.json-lib|json-lib|2.2.3|jar)). Inoltre non sono riuscito a trovare un modo per determinare se Gradle controlla gli errori di checksum come menzionato sopra. – ben3000

1

Per gli utenti di edera, dopo aver provato molte iterazioni diverse configurare il mio ivy.xml di trovare correttamente questa dipendenza, questo fine ha 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> 
+0

penso che l'URL cablata non è una soluzione ottimale, questo funziona in Ivy troppo: \t \t \t \t – stumbav

+0

@stumbav, questo non funziona per me. Dà errore: analizzato: [[Errore fatale] ivy.xml: 19: 137: Il prefisso "maven" per l'attributo "maven: classifier" associato a un tipo di elemento "artefatto" non è associato –