Java 如何在Ivy或Maven中指定net.sf.json lib#json lib#2.3? 我正在使用IVY将我们的构建系统从Ant转换成Ant,并且遇到了一个指定我们需要的特定JAR的问题。 groupId:net.sf.json-lib artifactId:json库 版本:2.3
我在常春藤中指定为:Java 如何在Ivy或Maven中指定net.sf.json lib#json lib#2.3? 我正在使用IVY将我们的构建系统从Ant转换成Ant,并且遇到了一个指定我们需要的特定JAR的问题。 groupId:net.sf.json-lib artifactId:json库 版本:2.3,java,maven,pom.xml,ivy,Java,Maven,Pom.xml,Ivy,我在常春藤中指定为: <dependency org="net.sf.json-lib" artifact="json-lib" rev="2.3" conf="compile->default"/> 注意,Ivy试图从存储库下载文件json-lib-2.3.jar 我在上进行了搜索,发现该工件不是名为json-lib-2.3.jar,而是名为json-lib-2.3-jdk-13.jar或json-lib-2.3-jdk-15.jar 问题在于指定工件名称
<dependency org="net.sf.json-lib" artifact="json-lib"
rev="2.3" conf="compile->default"/>
注意,Ivy试图从存储库下载文件json-lib-2.3.jar
我在上进行了搜索,发现该工件不是名为json-lib-2.3.jar
,而是名为json-lib-2.3-jdk-13.jar
或json-lib-2.3-jdk-15.jar
问题在于指定工件名称的方式。版本号出现在jar名称的中间。如果工件是“json-lib-jdk-15-2.4.jar”,我可以这样做:
<dependency org="net.sf.json-lib" artifact="json-lib"
rev="2.3" conf="compile->default">
<artifact name="json-lib-jdk-15"/>
</dependency>
如何指定此jar进行下载 jar名称末尾的“thing”称为分类器。它用于针对特定平台或提供源代码或Javadoc
要获取jar,需要如下定义分类器:
<ivy-module version='2.0' xmlns:m="http://ant.apache.org/ivy/maven">
...
<dependency org="net.sf.json-lib" artifact="json-lib" rev="2.3"conf="compile->default">
<artifact name="json-lib" type="jar" m:classifier="jdk15"/>
</dependency>
...
更多信息。我刚刚发现以前有人问过这个问题:现在我得到了与元素类型“dependency”关联的属性“m:classifier”的前缀“m”。我打赌我必须先咀嚼我的ivysettings.xml。谢谢。你的答案确实有用。
<ivy-module version='2.0' xmlns:m="http://ant.apache.org/ivy/maven">
...
<dependency org="net.sf.json-lib" artifact="json-lib" rev="2.3"conf="compile->default">
<artifact name="json-lib" type="jar" m:classifier="jdk15"/>
</dependency>