Maven classifier 元素妙用

时间:2022-02-09 22:57:18

首先来看这么一个依赖

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

看似没问题吧?你觉得能下得下来吗?答案是否定的,下不下来。

来看看Maven的文件索引目录:

Index of /maven2/net/sf/json-lib/json-lib/2.4/

../
json-lib-2.4-jdk13.jar 2010-12-14 05:39 158091
json-lib-2.4-jdk13.jar.md5 2012-11-27 09:40 32
json-lib-2.4-jdk13.jar.sha1 2012-11-27 09:21 40
json-lib-2.4-jdk13-javadoc.jar 2010-12-14 05:39 245414
json-lib-2.4-jdk13-javadoc.jar.md5 2012-11-27 09:40 32
json-lib-2.4-jdk13-javadoc.jar.sha1 2012-11-27 09:21 40
json-lib-2.4-jdk13-sources.jar 2010-12-14 05:39 102628
json-lib-2.4-jdk13-sources.jar.md5 2012-11-27 09:40 32
json-lib-2.4-jdk13-sources.jar.sha1 2012-11-27 09:21 40
json-lib-2.4-jdk15.jar 2010-12-14 05:39 159123
json-lib-2.4-jdk15.jar.md5 2012-11-27 09:40 32
json-lib-2.4-jdk15.jar.sha1 2012-11-27 09:21 40
json-lib-2.4-jdk15-javadoc.jar 2010-12-14 05:39 248552
json-lib-2.4-jdk15-javadoc.jar.md5 2012-11-27 09:40 32
json-lib-2.4-jdk15-javadoc.jar.sha1 2012-11-27 09:21 40
json-lib-2.4-jdk15-sources.jar 2010-12-14 05:39 104992
json-lib-2.4-jdk15-sources.jar.md5 2012-11-27 09:40 32
json-lib-2.4-jdk15-sources.jar.sha1 2012-11-27 09:21 40
json-lib-2.4.pom 2010-12-14 05:39 13082
json-lib-2.4.pom.md5 2012-11-27 09:40 32
json-lib-2.4.pom.sha1 2012-11-27 09:21 40

根据Maven默认组织包的结构来看,这里根本找不到json-lib-2.4.jar的包,所以也就下不下来。

没有标准的jar包,但是有扩展的,如:json-lib-2.4-jdk15.jar,所以,这里要引入classifier这个元素了,classifier元素用来帮助定义构件输出的一些附属构件。

所以,下面这里加入classifier元素来下载扩展包json-lib-2.4-jdk15.jar。

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

这样就能下载对应的附属构件了。

这里拿json-lib这个包来举例,但它已经停止更新维护了,不推荐使用,推荐使用fastjson、jackson、gson等json转换框架。