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

时间:2010-03-07 05:29:12

标签: java ant ivy

这是我的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>

常春藤试图找到 /家庭/ ---的/ dev /爪哇/ _libraries / _ivy /弹簧/ richclient / 1.1.0 /罐/ richclient.jar

这就是问题所在。库有4个jar文件。

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

THX

2 个答案:

答案 0 :(得分:2)

我假设你刚刚在本地下载了罐子?除非您还为下载的文件编写了ivy.xml文件,列出了与模块关联的工件(参见ivy.xml doco的 publications 部分),否则它将无效。

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

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

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

答案 1 :(得分:0)

虽然Ivy可以使用依赖于单个JAR文件的工作,但如果为依赖项本身定义单独的ivy.xml文件,它会更好地工作,它指定了4个单独的JAR文件。这个ivy.xml定义了Ivy称之为模块的内容。

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

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

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