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

Відповіді:


268

Дивлячись на центральний репо-центр:

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

FYI, для тих, хто використовує 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-lib не надає жодних даних класифікатора у своїй 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.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-адреса не є оптимальним рішенням, це працює і в Айві: <залежність org = "net.sf.json-lib" name = "json-lib" rev = "2.3"> <артефакт name = "json- lib "maven: classifier =" jdk15 "type =" jar "ext =" jar "/> </dependency>
stumbav

@stumbav, це не працює для мене. Це дає помилку: проаналізовано: [[фатальна помилка] ivy.xml: 19: 137: Приставка "maven" для атрибута "maven: класифікатор", пов'язана з елементом типу "артефакт", не пов'язана
Jitesh Sojitra
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.