maven 引入net.sf.json-lib依赖时报错(classifier)

概述

项目中引入net.sf.json-lib依赖

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

出现错误:Missing artifact net.sf.json-lib:json-lib:jar:2.4

解决

经查,缺少classifier

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

分析

查看*仓库,如下
maven 引入net.sf.json-lib依赖时报错(classifier)
发现问题原因是因为:*仓库中jar包的文件名叫 json-lib-2.4-jdk15.jar

classifier是什么

  • classifier元素用来帮助定义构件输出的一些附属构件。附属构件与主构件对应,比如主构件是 kimi-app-2.0.0.jar 该项目可能还会通过使用一些插件生成 如 kimi-app-2.0.0-javadoc.jar 、 kimi-app-2.0.0-sources.jar 这样两个附属构件。这时候,javadoc,sources就是这两个附属构件的classifier,这样附属构件也就拥有了自己唯一的坐标。
  • classifier通常用于区分从同一POM构建的具有不同内容的构件(artifact)。它是可选的,它可以是任意的字符串,附加在版本号之后。

参考