簡體   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