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

ดูที่ repo 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.แล้ว คิดว่าทำไม?
Alexandre Bourlier

2
ขวา. ไม่ได้ช่วยให้search.maven.org/… โกหกเราและไม่ใส่ลักษณนาม
djsadinoff

FYI สำหรับผู้ที่ใช้ Play Framework 1.x คุณไม่สามารถใช้ jar นี้จาก maven central ได้ - play.lighthouseapp.com/projects/57987-play-framework/tickets/…
ripper234

ดี! สงสัยว่าทำไมไม่ได้ตั้งค่าลักษณนามเมื่อฉันเพิ่มการอ้างอิงที่มี jdk15 ในตอนแรก
heyomi

2
ไอวี่เทียบเท่ากับอะไร?
Ron Romero

25

สำหรับ gradle เป็นตัวอย่าง

คอมไพล์ '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 หลังจากลองทำซ้ำหลาย ๆ ครั้งเพื่อกำหนดค่า 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 นี่ใช้ไม่ได้สำหรับฉัน มันให้ข้อผิดพลาด: แยกวิเคราะห์: [[Fatal Error] ivy.xml: 19: 137: คำนำหน้า "maven" สำหรับแอตทริบิวต์ "maven: classifier" ที่เชื่อมโยงกับองค์ประกอบประเภท "artifact" ไม่ถูกผูกไว้
Jitesh Sojitra
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.