我正在使用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>
问题似乎发生在常春藤试图下载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
答案 0 :(得分:8)
问题是,正如您已经意识到的那样,这些罐子不在远程存储库中。但是你的程序可能并不真正需要它们。 Ivy尝试下载它们的唯一原因是因为它们是在ibiblio的pom.xml中声明的。如果您尝试1.2.14版本,您将看到这些传递依赖项不在1.2.14 pom中,因此Ivy不会下载它们。
或者,如果您希望坚持使用1.2.15,可以将an exclude element添加到ivy.xml文件中,告诉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>
希望有所帮助:)