1
免責聲明:我使用Ant +艾維是一個新手解決常春藤依賴
我有以下Eclipse配置:
項目A取決於項目B和ProjectC
項目B取決於項目C
每個項目都擁有ivy.xml文件。
項目A有一個build.xml文件是這樣的:
(...)
<ivy:resolve file="../ProjectC/ivy.xml" />
<ivy:cachepath pathid="ivy.deps.default" conf="default" />
<ivy:cachefileset setid="ivy.deps.default.fileset" conf="default"/>
<ivy:resolve file="../ProjectB/ivy.xml" />
<ivy:cachepath pathid="ivy.deps.default" conf="default" />
<ivy:cachefileset setid="ivy.deps.default.fileset" conf="default"/>
<ivy:resolve file="ivy.xml" />
<ivy:cachepath pathid="ivy.deps.default" conf="default" />
<ivy:cachefileset setid="ivy.deps.default.fileset" conf="default"/>
<path id="classpath">
<fileset dir="${webroot}/WEB-INF/lib" erroronmissingdir="no">
<include name="*.jar"/>
</fileset>
<fileset dir="${libraries}" erroronmissingdir="no">
<include name="*.jar"/>
</fileset>
<path refid="ivy.deps.default"/>
</path>
(...)
<javac destdir="c:/abc" includeantruntime="yes" classpathref="ivy.deps.default">
<src path="../ProjectC/src"/>
<classpath refid="classpath"/>
</javac>
(... Compile ProjectB ...)
(... Compile ProjectA ...)
因此,運行在錯誤的build.xml這個結果,他說,項目C不能編譯,因爲它缺少的是應該有一個* .jar文件已通過ivy:resolve命令解決。
我的問題是:
- 如何使一個build.xml自動從子項目檢索的依賴,並編譯所有的子項目?
我會建議保持每個項目與自己的常青藤文件分開。讓每個項目都是獨立的,並將其jar發佈到共享存儲庫中,而不是嘗試解決其他項目中的依賴關係。最後,對於多模塊項目,您可以使用ivy buildlist任務根據每個模塊的常青藤文件中記錄的相互依賴關係,以正確的順序構建每個模塊。 – 2014-10-20 21:04:34
另請參閱:http://stackoverflow.com/questions/4106143/ivy-simple-shared-repository/4110220#4110220 – 2014-10-20 21:07:40