无法使用常春藤解决依赖关系
Cannot resolve dependency using ivy
我遇到了 ivy 无法解决我的一些依赖项的问题。以下是我如何重现该问题:
我在 Eclipse 中有一个空的 java 项目。我已将 ivy.xml 添加到我的项目中:
<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info
organisation=""
module=""
status="integration">
</info>
<dependencies >
<dependency org="org.drools" name="drools-core" rev="5.5.0.Final"/>
</dependencies>
</ivy-module>
这工作正常,ivy 能够解析和下载 drools。
如果我将修订版更改为 6.3。0.Final (http://mvnrepository.com/artifact/org.drools/drools-core/6.3.0.Final)
它不起作用,我看到一个错误:
unresolved dependency: org.drools#drools-core;6.3.0.Final: not found
我能看到这两个版本之间的唯一区别是 6.3.0 是捆绑包。
在 Eclipse 中,当我转到 Ivy 的属性 -> 类路径 -> 我检查了读取 OSGI 元数据和接受的类型 = jar,bundle,ejb,maven-plugin
我也用谷歌搜索并发现了这个(这可能与这个问题完全无关):
http://mail-archives.apache.org/mod_mbox/ant-dev/201501.mbox/%3CCAC_RtEZx=bqk+N3MrtH-Y-zCqDfm5=eA3rYOa7hLLYC_u82S9g@mail.gmail.com%3E
似乎是 Maven 存储库问题。看起来其中一个父 POM 文件中缺少依赖项。
ivy 分辨率打印以下警告消息:
[ivy:resolve] :::: WARNINGS
[ivy:resolve] io problem while parsing ivy file: https://repo1.maven.org/maven2/org/kie/kie-platform-bom/6.3.0.Final/kie-platform-bom-6.3.0.Final.pom (java.io.IOException: Impossible to import module for file:/home/mark/.ivy2/cache/org.kie/kie-platform-bom/ivy-6.3.0.Final.xml.original. Import=org.jboss.dashboard-builder#dashboard-builder-bom;6.3.0.Final)
[ivy:resolve] io problem while parsing ivy file: https://repo1.maven.org/maven2/org/kie/kie-parent-with-dependencies/6.3.0.Final/kie-parent-with-dependencies-6.3.0.Final.pom (java.io.IOException: Impossible to import module for file:/home/mark/.ivy2/cache/org.kie/kie-parent-with-dependencies/ivy-6.3.0.Final.xml.original. Import=org.kie#kie-platform-bom;6.3.0.Final)
[ivy:resolve] io problem while parsing ivy file: https://repo1.maven.org/maven2/org/drools/drools/6.3.0.Final/drools-6.3.0.Final.pom (java.io.IOException: Impossible to load parent for file:/home/mark/.ivy2/cache/org.drools/drools/ivy-6.3.0.Final.xml.original. Parent=org.kie#kie-parent-with-dependencies;6.3.0.Final)
[ivy:resolve] io problem while parsing ivy file: https://repo1.maven.org/maven2/org/drools/drools-core/6.3.0.Final/drools-core-6.3.0.Final.pom (java.io.IOException: Impossible to load parent for file:/home/mark/.ivy2/cache/org.drools/drools-core/ivy-6.3.0.Final.xml.original. Parent=org.drools#drools;6.3.0.Final)
[ivy:resolve] module not found: org.drools#drools-core;6.3.0.Final
以下父模块:
<dependency>
<groupId>org.jboss.dashboard-builder</groupId>
<artifactId>dashboard-builder-bom</artifactId>
<type>pom</type>
<version>${version.org.jbpm.dashboard-builder}</version>
<scope>import</scope>
</dependency>
不确定 Ivy 是如何工作的,但如果您可以在那里添加额外的存储库,添加 https://repository.jboss.org 应该可以解决问题。这应该可以解决不存在的 org.jboss.dashboard-builder 的问题,Mark 已经指出这是问题的根源。
在使用 Gradle 进行依赖管理时,以下帮助解决了同样的问题。
repositories {
maven {
url "https://repository.jboss.org"
}
}
我遇到了 ivy 无法解决我的一些依赖项的问题。以下是我如何重现该问题:
我在 Eclipse 中有一个空的 java 项目。我已将 ivy.xml 添加到我的项目中:
<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info
organisation=""
module=""
status="integration">
</info>
<dependencies >
<dependency org="org.drools" name="drools-core" rev="5.5.0.Final"/>
</dependencies>
</ivy-module>
这工作正常,ivy 能够解析和下载 drools。
如果我将修订版更改为 6.3。0.Final (http://mvnrepository.com/artifact/org.drools/drools-core/6.3.0.Final) 它不起作用,我看到一个错误:
unresolved dependency: org.drools#drools-core;6.3.0.Final: not found
我能看到这两个版本之间的唯一区别是 6.3.0 是捆绑包。 在 Eclipse 中,当我转到 Ivy 的属性 -> 类路径 -> 我检查了读取 OSGI 元数据和接受的类型 = jar,bundle,ejb,maven-plugin
我也用谷歌搜索并发现了这个(这可能与这个问题完全无关): http://mail-archives.apache.org/mod_mbox/ant-dev/201501.mbox/%3CCAC_RtEZx=bqk+N3MrtH-Y-zCqDfm5=eA3rYOa7hLLYC_u82S9g@mail.gmail.com%3E
似乎是 Maven 存储库问题。看起来其中一个父 POM 文件中缺少依赖项。
ivy 分辨率打印以下警告消息:
[ivy:resolve] :::: WARNINGS
[ivy:resolve] io problem while parsing ivy file: https://repo1.maven.org/maven2/org/kie/kie-platform-bom/6.3.0.Final/kie-platform-bom-6.3.0.Final.pom (java.io.IOException: Impossible to import module for file:/home/mark/.ivy2/cache/org.kie/kie-platform-bom/ivy-6.3.0.Final.xml.original. Import=org.jboss.dashboard-builder#dashboard-builder-bom;6.3.0.Final)
[ivy:resolve] io problem while parsing ivy file: https://repo1.maven.org/maven2/org/kie/kie-parent-with-dependencies/6.3.0.Final/kie-parent-with-dependencies-6.3.0.Final.pom (java.io.IOException: Impossible to import module for file:/home/mark/.ivy2/cache/org.kie/kie-parent-with-dependencies/ivy-6.3.0.Final.xml.original. Import=org.kie#kie-platform-bom;6.3.0.Final)
[ivy:resolve] io problem while parsing ivy file: https://repo1.maven.org/maven2/org/drools/drools/6.3.0.Final/drools-6.3.0.Final.pom (java.io.IOException: Impossible to load parent for file:/home/mark/.ivy2/cache/org.drools/drools/ivy-6.3.0.Final.xml.original. Parent=org.kie#kie-parent-with-dependencies;6.3.0.Final)
[ivy:resolve] io problem while parsing ivy file: https://repo1.maven.org/maven2/org/drools/drools-core/6.3.0.Final/drools-core-6.3.0.Final.pom (java.io.IOException: Impossible to load parent for file:/home/mark/.ivy2/cache/org.drools/drools-core/ivy-6.3.0.Final.xml.original. Parent=org.drools#drools;6.3.0.Final)
[ivy:resolve] module not found: org.drools#drools-core;6.3.0.Final
以下父模块:
<dependency>
<groupId>org.jboss.dashboard-builder</groupId>
<artifactId>dashboard-builder-bom</artifactId>
<type>pom</type>
<version>${version.org.jbpm.dashboard-builder}</version>
<scope>import</scope>
</dependency>
不确定 Ivy 是如何工作的,但如果您可以在那里添加额外的存储库,添加 https://repository.jboss.org 应该可以解决问题。这应该可以解决不存在的 org.jboss.dashboard-builder 的问题,Mark 已经指出这是问题的根源。
在使用 Gradle 进行依赖管理时,以下帮助解决了同样的问题。
repositories {
maven {
url "https://repository.jboss.org"
}
}