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

Answers:


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.。知道为什么吗?
2012年

2
对。search.maven.org/… 对我们撒谎,而忽略了分类器并没有帮助。
djsadinoff 2012年

仅供参考,使用播放框架1.x的这些,你不能使用Maven的从中央这个罐子- play.lighthouseapp.com/projects/57987-p​​lay-framework/tickets/...
ripper234

真好!想知道为什么当我最初添加具有jdk15的依赖项时未设置分类器。
heyomi 2013年

2
常春藤相当于什么?
罗恩·罗梅罗

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中未提供任何分类器数据(请参阅thisthis)。我也找不到一种方法来确定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'2010-11-13

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并不是最佳解决方案,它也适用于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 2015年

@stumbav,这对我不起作用。它给出错误:已解析:[[致命错误] ivy.xml:19:137:与元素类型“工件”相关联的属性“ maven:classifier”的前缀“ maven”未绑定
Jitesh Sojitra
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.