常春藤未能解决依赖:要检查什么,该怎么办?

use*_*540 5 java ant ivy

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

我在5分钟前尝试下载log4j时出现问题.

我的配置非常基础,我有一个ant任务:

<target name="resolve" description="--> retrieve dependencies with ivy">
        <ivy:retrieve/>
    </target>
Run Code Online (Sandbox Code Playgroud)

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

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


</dependencies>
Run Code Online (Sandbox Code Playgroud)

问题似乎发生在常春藤试图下载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]      ::::::::::::::::::::::::::::::::::::::::::::::
Run Code Online (Sandbox Code Playgroud)

有什么我能做的吗?

非常感谢你们.

F

GaZ*_*GaZ 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>
Run Code Online (Sandbox Code Playgroud)

希望有帮助:)