Maven: brak pliku net.sf.json-lib


101

Znalazłem net.sf.json-lib w centralnym repozytorium . Skopiuj i wklej zależność (z wersją 2.3), a następnie podczas kompilacji otrzymuję ten błąd:

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

Próbowałem użyć wersji 2.2.3, ale pojawia się ten sam błąd. Dlaczego otrzymuję ten błąd? Mogę to zmienić, instalując lokalnie, ale chcę zrozumieć, na czym polega problem.

Edycja - usunąłem pakiet z mojego lokalnego repozytorium i spróbowałem ponownie, tym razem otrzymując błąd sumy kontrolnej. Myślę, że powinienem zgłosić błąd za pomocą json-lib.

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

Wygląda na to, że plik w maven central ma nieprawidłową sumę kontrolną ... musisz zdecydować, czy i tak mu ufasz, czy nie.
khmarbaise

Odpowiedzi:


270

Patrząc na repozytorium Maven-Central:

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

musisz określić klasyfikator dla tej zależności: albo jdk13, albo jdk15, na przykład:

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

2
Mam ten sam problem. W BuildConfig.groovy, tak: dependencies { runtime group:'net.sf.json-lib', name:'json-lib', version:'2.4', classifier:'jdk15' }ale bezskutecznie. Rozumiem Failed to resolve dependency.. Każdy pomysł, dlaczego?
Alexandre Bourlier

2
Dobrze. Nie pomaga to, że search.maven.org/… nas okłamuje i pomija klasyfikator.
djsadinoff

Do Twojej wiadomości, dla tych, którzy używają Play Framework 1.x, nie możesz użyć tego jar z Maven
ripper234

Miły! Ciekawe, dlaczego klasyfikator nie został ustawiony, kiedy początkowo dodałem zależność, która miała jdk15.
heyomi

2
Jaki jest odpowiednik bluszczu?
Ron Romero,

25

Dla klasy jako próbki

kompiluj „net.sf.json-lib: json-lib: 2.4: jdk15”

LUB

grupa kompilacji: „net.sf.json-lib”, nazwa: „json-lib”, wersja: „2.4”, klasyfikator: „jdk15”

Szukałem więcej klasyfikatorów, nie mogłem znaleźć niczego innego niż jdk15 (nie szukaj ani jdk16 lub jdk17)


To nie zadziałało dla mnie. Musiałem zainstalować plik lokalnie zgodnie z sugestią @ icyrock.com, a następnie umieścić go mavenLocal()wcześniej mavenCentral()w repositoriessekcjach.
ben3000

Tylko dla dokumentacji: w Gradle jest co najmniej jeden błąd związany z zależnościami przechodnimi, również o ile wiem, json-lib nie dostarcza żadnych danych klasyfikatora w swoim POM (zobacz to i to ). Nie mogłem również znaleźć sposobu, aby określić, czy Gradle sprawdza błędy sum kontrolnych, jak wspomniano powyżej.
ben3000

2

Oprócz komentarza khimarbaise o wiarygodności, możesz zainstalować go lokalnie za pomocą 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
Miałem już plik jar (konwertuję projekt do maven), więc zainstalowałem to, co miałem. Dzięki.
ripper234

1

W przypadku użytkowników bluszczu, po wypróbowaniu wielu różnych iteracji, aby skonfigurować mój plik ivy.xml, aby poprawnie znaleźć tę zależność, w końcu zadziałało:

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

Myślę, że stały adres URL nie jest optymalnym rozwiązaniem, działa to również w 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, to nie działa dla mnie. Daje błąd: przeanalizowano: [[Błąd krytyczny] ivy.xml: 19: 137: Przedrostek „maven” dla atrybutu „maven: klasyfikator” powiązany z typem elementu „artefakt” nie jest powiązany
Jitesh Sojitra
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.