Maven: falta net.sf.json-lib

101

Encontré net.sf.json-lib en el repositorio central . Copie y pegue la dependencia (con la versión 2.3), y luego, cuando construyo, obtengo este error:

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

Intenté usar la versión 2.2.3, pero obtengo el mismo error. ¿Por qué recibo este error? Puedo anularlo instalándolo localmente, pero quiero entender cuál es el problema.

Editar : eliminé el paquete de mi repositorio local y lo intenté nuevamente, esta vez obteniendo un error de suma de comprobación. Supongo que debería presentar un informe de error 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
destripador234
fuente
Parece que el archivo en maven central tiene una suma de comprobación incorrecta ... debe decidir si confía en él de todos modos o no.
Khmarbaise

Respuestas:

268

Mirando el repositorio de maven-central:

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

necesita especificar un clasificador para esta dependencia: ya sea jdk13 o jdk15, así:

    <dependency>
        <groupId>net.sf.json-lib</groupId>
        <artifactId>json-lib</artifactId>
        <version>2.4</version>
        <classifier>jdk15</classifier>
    </dependency>
Petar Tahchiev
fuente
2
Estoy teniendo el mismo problema. En BuildConfig.groovy, lo hago: dependencies { runtime group:'net.sf.json-lib', name:'json-lib', version:'2.4', classifier:'jdk15' }pero fue en vano. Yo entiendo Failed to resolve dependency.. ¿Alguna idea de por qué?
Alexandre Bourlier
2
Correcto. No ayuda que search.maven.org/… nos mienta y omita el clasificador.
djsadinoff
FYI, para aquellos que usan Play Framework 1.x, no pueden usar este jar de maven central - play.lighthouseapp.com/projects/57987-play-framework/tickets/…
ripper234
¡Agradable! Me pregunto por qué no se configuró el clasificador cuando inicialmente agregué la dependencia que tenía jdk15.
heyomi
2
¿Cuál es el equivalente de la hiedra?
Ron Romero
25

Para gradle como muestra

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

O

grupo de compilación: 'net.sf.json-lib', nombre: 'json-lib', versión: '2.4', clasificador: 'jdk15'

Busqué más clasificadores y no pude encontrar nada más que jdk15 (no vayas a buscar ni jdk16 o jdk17)

Rinat Mukhamedgaliev
fuente
Esto no funcionó para mí. Tuve que instalar el archivo localmente de manera similar a la sugerencia de @ icyrock.com, luego poner mavenLocal()antes mavenCentral()en las repositoriessecciones.
ben3000
Solo para la documentación: hay al menos un error en Gradle asociado con las dependencias transitivas, también por lo que puedo decir, json-lib no proporciona ningún dato de clasificador en su POM (ver esto y esto ). Tampoco pude encontrar una manera de determinar si Gradle busca errores de suma de comprobación como se mencionó anteriormente.
ben3000
2

Salvo el comentario de khimarbaise sobre la confiabilidad, puede instalarlo 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
icyrock.com
fuente
2
Ya tenía el archivo jar (estoy convirtiendo el proyecto en maven), así que instalé lo que tenía. Gracias.
ripper234
1

Para los usuarios de ivy, después de probar muchas iteraciones diferentes para configurar mi ivy.xml para encontrar correctamente esta dependencia, esto finalmente funcionó para mí:

  <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
fuente
Creo que la URL cableada no es una solución óptima, esto también funciona en 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, esto no funciona para mí. Da error: analizado: [[Error fatal] ivy.xml: 19: 137: El prefijo "maven" para el atributo "maven: clasificador" asociado con un tipo de elemento "artefacto" no está vinculado
Jitesh Sojitra