分析依赖库net.sf.json-lib:json-lib:2.4找不到的问题

本文详细解析了在Maven项目中遇到的“Cannotresolve net.sf.json-lib:json-lib:2.4”错误,并提供了正确的解决方案,即在pom.xml文件中正确指定版本和classifier。

现象

把一个老项目改为Maven项目,项目需要:json-lib-2.4-jdk15.jar。
去搜这个包:https://mvnrepository.com/search?q=json-lib
第一项就是我们要的,也是在中央库里。
在这里插入图片描述
在pom.xml中添加:

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

然后报“Cannot resolve net.sf.json-lib:json-lib:2.4”……???

分析

本着先百度再谷歌,最后Stack Overflow的偷懒思想,发现查到好些个解决方案写得不太对劲。

不用自己导入maven仓库

这个和“把OJDBC加入本地Maven库”不是同一个问题!不是同一个问题!不是同一个问题!
Oracle那个是因为版权问题,Maven仓库没有收录。
所以需要自己手动把jar包加入本地库。PS:参考:《CodeMonkey新人流水账》

这个问题是中央库没有找到。
虽然自己加入,改名,一系列的操作最后可以用,但是没必要啊!

仓库?下载?构建版本?

顺序是:指定版本后,才能自动从中央仓库下载到本地仓库。
而不是下载到本地仓库,再去指定jdk15。
同样也不是替换了Maven源的锅(在天朝一般都会把maven,yum 替换成阿里源一类的国内源)。

解决

在pom.xml中添加依赖时,加上一句classifier:

<dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.4</version>
    <classifier>jdk15</classifier>	<!-- 就是这句 -->
</dependency>

为什么是:jdk15?
人家包就是15,没有16,17,18。
去官方主页看了一下,的确最后更新停在2010年,最后一个包就是json-lib-2.4-jdk15.jar。

Maven 项目中,如果遇到 `net.sf.json-lib:json-lib:jar:2.4` 的依赖无法解析问题,通常是因为该库需要明确指定 JDK 版本分类器(classifier),尤其是在使用较新版本的 JDK 或构建工具时。`json-lib` 是一个早期的 JSON 处理库,其发布方式与现代库略有不同,因此在引入依赖时需要额外注意。 默认情况下,Maven 不会自动识别 `json-lib` 所需的 JDK 分类信息,导致出现 "Unresolved dependency" 或 "Missing artifact" 错误[^2]。解决方法是在 `pom.xml` 文件中为该依赖显式添加 `<classifier>` 标签,以指明目标 JDK 版本。 ### 示例配置 ```xml <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency> ``` 上述配置适用于 JDK 1.5 及以上版本。如果当前开发环境使用的是更高版本的 JDK(例如 JDK 1.8 或 JDK 11),仍然可以使用 `jdk15` 分类器,因为这是 `json-lib` 官方发布的标准标签,并不严格限制于特定 JDK 版本[^3]。 此外,如果 Maven 仓库未能正确下载该依赖,可能需要手动下载 `json-lib-2.4-jdk15.jar` 文件并将其安装到本地仓库。可以通过以下命令完成: ```bash mvn install:install-file -Dfile=path/to/json-lib-2.4-jdk15.jar -DgroupId=net.sf.json-lib -DartifactId=json-lib -Dversion=2.4 -Dclassifier=jdk15 -Dpackaging=jar ``` 确保替换 `path/to/json-lib-2.4-jdk15.jar` 为实际的 JAR 文件路径。 ### 注意事项 - 检查 `settings.xml` 中配置的仓库地址是否可用,或者尝试切换至其他公共仓库(如阿里云镜像)。 - 如果使用的是 IDE(如 Eclipse 或 IntelliJ IDEA),请确保 Maven 插件已正确安装并且索引更新无误[^4]。 ---
评论 19
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值