5

我正在使用 Ivy 来解决我非常小的项目中的依赖关系。这是我第一次这样做,因为我的项目很小,所以要学习更多。

5 分钟前我在尝试下载 log4j 时遇到了问题。

我的配置非常基本,我有一个蚂蚁任务:

<target name="resolve" description="--> retrieve dependencies with ivy">
        <ivy:retrieve/>
    </target>

我的 Ivy.xml 文件是这样的:

    <dependency org="javax.servlet" name="servlet-api" rev="2.5" />
    <dependency org="log4j" name="log4j" rev="1.2.15" />


</dependencies>

当 ivy 尝试下载 jms 1.1(我想 log4j 需要它)时,问题似乎发生了,正如我在控制台中看到的那样:

:

:::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]      ::              FAILED DOWNLOADS            ::
[ivy:retrieve]      :: ^ see resolution messages for details  ^ ::
[ivy:retrieve]      ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]      :: javax.jms#jms;1.1!jms.jar
[ivy:retrieve]      :: com.sun.jdmk#jmxtools;1.2.1!jmxtools.jar
[ivy:retrieve]      :: com.sun.jmx#jmxri;1.2.1!jmxri.jar
[ivy:retrieve]      ::::::::::::::::::::::::::::::::::::::::::::::

有什么我可以做的吗?

非常感谢你们。

F

4

1 回答 1

9

正如您已经意识到的那样,问题是这些罐子不在远程存储库中。但是您的程序可能并不真正需要它们。Ivy 尝试下载它们的唯一原因是因为它们是在 ibiblio 上的 pom.xml 中声明的。如果您尝试 1.2.14 版本,您会发现这些传递依赖项不在 1.2.14 pom 中,因此 Ivy 不会下载它们。

或者,如果你想坚持使用 1.2.15,你可以在你的 ivy.xml 文件中添加一个 exclude 元素来告诉 Ivy 忽略这些库:

<dependency org="log4j" name="log4j" rev="1.2.15">
  <exclude org="com.sun.jdmk"/>
  <exclude org="com.sun.jmx"/>
  <exclude org="javax.jms"/>
</dependency>

希望有帮助:)

于 2009-10-20T18:50:14.490 回答