繁体   English   中英

如何使用Apache Ivy解决多个文件的依赖关系?

[英]How to use Apache ivy to resolve dependency with multiple files?

这是我的ivy.xml:

<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0">
...
<dependencies>
    <dependency org="spring" name="richclient" rev="1.1.0"/>
</dependencies>
</ivy-module>

和ivy-settings.xml:

<property name="ivy.local.default.root"             value="/home/---/dev/Java/_libraries/_ivy" override="false"/>
<property name="ivy.local.default.ivy.pattern"      value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/>
<property name="ivy.local.default.artifact.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/>
<resolvers>
    <filesystem name="local">
        <ivy pattern="${ivy.local.default.root}/${ivy.local.default.ivy.pattern}" />
        <artifact pattern="${ivy.local.default.root}/${ivy.local.default.artifact.pattern}" />
    </filesystem>
</resolvers>

常春藤尝试找到/home/---/dev/Java/_libraries/_ivy/spring/richclient/1.1.0/jars/richclient.jar

这就是问题所在。 图书馆有4个jar文件。

如何从ivy.xml中的一个依赖项将项目中的所有jar都包含在内?

谢谢

我假设您刚刚在本地下载了jars? 除非您还为下载的文件编写一个ivy.xml文件,并列出与该模块关联的工件,否则它将不起作用(请参阅ivy.xml doco的出版物部分)

为什么不通过使用Spring提供的Maven存储库来避免维护自己的其他模块版本的麻烦呢?

将以下内容添加到您的ivy-settings.xml文件中:

<resolvers>
    <ibiblio name="spring-rcp" m2compatible="true" root="http://spring-rich-c.sourceforge.net/maven2repository"/>
</resolvers>

尽管Ivy可以使用单个JAR文件上的依赖项来工作,但如果为依赖项本身定义了单独的ivy.xml文件(它指定了4个单独的JAR文件),则效果更好。 这个ivy.xml定义了Ivy所谓的模块。

然后,应用程序的ivy.xml表示对该模块的依赖性,而不是对特定JAR文件的依赖性。

常春藤网站上有关于模块的教程,我强烈建议阅读

http://ant.apache.org/ivy/history/latest-milestone/tutorial/conf.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM