0

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

和常春藤-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>

ivy 尝试查找 /home/---/dev/Java/_libraries/_ivy/spring/richclient/1.1.0/jars/richclient.jar

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

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

谢谢

4

2 回答 2

2

我假设您刚刚在本地下载了罐子?除非您还为下载的文件编写 ivy.xml 文件,列出与模块关联的工件,否则它将无法工作(请参阅ivy.xml 文档的发布部分)

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

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

<resolvers>
    <ibiblio name="spring-rcp" m2compatible="true" root="http://spring-rich-c.sourceforge.net/maven2repository"/>
</resolvers>
于 2010-03-13T10:08:05.163 回答
0

虽然 Ivy 可以在单个 JAR 文件上使用依赖项,但如果ivy.xml为依赖项本身定义单独的文件(指定 4 个单独的 JAR 文件),效果会更好。这ivy.xml定义了 Ivy 所说的模块。

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

常春藤网站有一个关于模块的教程,我强烈推荐阅读它

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

于 2010-03-13T10:28:46.347 回答