【问题标题】:Ivy - Can't download because POM file and the JAR file name aren't matching patternsIvy - 无法下载,因为 POM 文件和 JAR 文件名不匹配模式
【发布时间】:2011-10-20 01:20:52
【问题描述】:

我又和 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 文件名吗?

谢谢!!

【问题讨论】:

  • 汉尼拔,提供的答案对您有什么帮助?有没有cmets?

标签: ivy


【解决方案1】:

在 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 模块中检索关联的工件,而不是默认的主工件。

更新

这个 ivy 依赖声明在功能上和 Maven 中的下面的一样

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

【讨论】:

  • 对上述答案的轻微更新。分类器注解改为maven:classifier
猜你喜欢
  • 2020-06-06
  • 2022-01-16
  • 2017-07-21
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
  • 1970-01-01
  • 2019-10-09
  • 2011-08-19
相关资源
最近更新 更多