Dav*_* W. 2 java ivy pom.xml maven
我正在使用Ivy将我们的构建系统从Ant转换为Ant,并遇到了一个指定我们需要的特定jar的问题.
我在常春藤中指定它:
<dependency org="net.sf.json-lib" artifact="json-lib"
rev="2.3" conf="compile->default"/>
Run Code Online (Sandbox Code Playgroud)
并得到以下错误:
[ivy:retrieve] ==== public: tried
[ivy:retrieve] http://buildl01.tcprod.local/artifactory/libs-release/net/sf/json-lib/json-lib/2.3/json-lib-2.3.jar
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] :: FAILED DOWNLOADS ::
[ivy:retrieve] :: ^ see resolution messages for details ^ ::
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] :: net.sf.json-lib#json-lib;2.3!json-lib.jar
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
Run Code Online (Sandbox Code Playgroud)
注意Ivy试图json-lib-2.3.jar从存储库下载文件.
我做的一个搜索中央Maven仓库,发现神器不叫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>
Run Code Online (Sandbox Code Playgroud)
如何指定此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>
Run Code Online (Sandbox Code Playgroud)
阅读本文以获取更多信息.
| 归档时间: |
|
| 查看次数: |
1750 次 |
| 最近记录: |