Maven: отсутствует net.sf.json-lib


101

Я нашел net.sf.json-lib в центральном репозитории . Скопируйте зависимость (с версией 2.3), а затем, когда я создаю, я получаю эту ошибку:

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

Я пробовал использовать версию 2.2.3, но получаю ту же ошибку. Почему я получаю эту ошибку? Я могу отменить его, установив локально, но я хочу понять, в чем проблема.

Изменить - я удалил пакет из своего локального репозитория и попробовал еще раз, на этот раз получив ошибку контрольной суммы. Думаю, мне следует отправить отчет об ошибке с помощью json-lib.

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

Похоже, что файл в maven central имеет неправильную контрольную сумму ... вы должны решить, доверяете ли вы ему в любом случае или нет.
khmarbaise

Ответы:


270

Глядя на репо maven-central:

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

вам нужно указать классификатор для этой зависимости: либо jdk13, либо jdk15, например:

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

2
У меня та же проблема. В BuildConfig.groovy, я: dependencies { runtime group:'net.sf.json-lib', name:'json-lib', version:'2.4', classifier:'jdk15' }но безрезультатно. Я понимаю Failed to resolve dependency.. Есть идеи, почему?
Александр Бурлье

2
Правильно. Не помогает то, что search.maven.org/… лжет нам и пропускает классификатор.
djsadinoff

К вашему сведению, для тех, кто использует Play Framework 1.x, вы не можете использовать эту банку из maven central - play.lighthouseapp.com/projects/57987-play-framework/tickets/…
ripper234

Ницца! Интересно, почему классификатор не был установлен, когда я изначально добавил зависимость, у которой был jdk15.
heyomi

2
Что эквивалентно плющу?
Рон Ромеро

25

Для градиента в качестве образца

скомпилировать 'net.sf.json-lib: json-lib: 2.4: jdk15'

ИЛИ

группа компиляции: 'net.sf.json-lib', имя: 'json-lib', версия: '2.4', классификатор: 'jdk15'

Я искал больше классификаторов, не нашел ничего, кроме jdk15 (не ищите ни jdk16, ни jdk17)


У меня это не сработало. Я должен был установить файл локально , похожий на @ icyrock.com - х внушения, а затем поставить mavenLocal()перед тем mavenCentral()в repositoriesразделах.
ben3000

Только для документации: есть по крайней мере одна ошибки в Gradle , связанная с переходными зависимостями, а также, насколько я могу судить, JSON Пб не предоставляет никаких данных классификаторов в POM (см это и это ). Я также не смог найти способ определить, проверяет ли Gradle ошибки контрольной суммы, как указано выше.
ben3000

2

За исключением комментария khimarbaise о надежности, вы можете установить его локально, используя 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
У меня уже был файл jar (я конвертирую проект в maven), поэтому я установил то, что у меня было. Спасибо.
ripper234

1

Для пользователей ivy, после множества разных итераций по настройке моего ivy.xml, чтобы правильно найти эту зависимость, это, наконец, сработало для меня:

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

Я думаю, что зашитый URL-адрес не является оптимальным решением, это работает и в 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, у меня это не работает. Выдает ошибку: parsed: [[Неустранимая ошибка] ivy.xml: 19: 137: Префикс «maven» для атрибута «maven: classifier», связанного с типом элемента «артефакт», не привязан
Джитеш Соджитра,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.