常春藤 - 无法下载,因为POM文件和JAR文件名不匹配模式

时间:2011-08-04 14:13:56

标签: ivy

再次使用IVY。

现在的问题是将常春藤文件POM文件调用到JSON库:

http://repo1.maven.org/maven2/net/sf/json-lib/json-lib/2.4/json-lib-2.4.pom

JSON-LIB-2.4.pom

但是调用了JAR文件:

JSON-LIB-2.4-jdk13.jar

-jdk13使得无法找到pom文件。

因此它无法下载JAR文件,因为它说明了这一点:

== resolving dependencies egencia#com.egencia.test.framework;working@ESFVMVI-750->net.sf.json-lib#json-lib;2.4 [default->compile]
[ivy:resolve]       tried http://repo1.maven.org/maven2/net/sf/json-lib/json-lib/2.4/json-lib-2.4-jdk13.jar
[ivy:resolve]   maven: no ivy file found for net.sf.json-lib#json-lib;2.4: using default data
[ivy:resolve]   found net.sf.json-lib#json-lib;2.4 in maven

现在..我设法找到一个找到JAR文件的模式,向它添加-jdk13 ..但这样就不再找到POM文件了。

之后,没有下载的JAR文件,当然由于缺少dep而导致构建失败。

那么......我能以某种方式将POM配置为JAR文件名吗?

谢谢!

1 个答案:

答案 0 :(得分:6)

它在Maven中称为分类器属性。尝试按如下方式声明您的依赖关系:

<ivy-module version='2.0' xmlns:m="http://ant.apache.org/ivy/maven">
    ..
    <dependencies>
        ..
        <dependency org="net.sf.json-lib" name="json-lib" rev="2.4"> 
            <artifact name="json-lib" type="jar" m:classifier="jdk13"/>
        </dependency>
        ..
    </dependencies>
</ivy-module>

这将从Maven模块中检索关联的工件而不是默认的主工件。

更新

此常春藤依赖声明在功能上与Maven中的以下内容相同

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