我最近更新了我的項目結構以使用IVY:擴展了我聲明父項(common-ivy.xml)並在所有項目中擴展的功能(我有大約120個使用此項目的項目)。我通過使用此線程IVY Extends via ivy:resolve中的技術來實現此目的。IVY擴展失去依賴聲明
現在的問題是,在採用這種結構後,我失去了項目之間的依賴關係,這是必需的,它現在正在破壞一切。例如見下文;
共的ivy.xml
<?xml-stylesheet type="text/xsl" href="http://repository.temenosgroup.com/xsl/version-doc.xsl"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info organisation="xyz" branch="15" module="CommonDependency" revision="1.0.0" />
<configurations defaultconfmapping="test->test(*);compile->compile(*)">
<conf name="test" description="Test Time dependencies"/>
<conf name="compile" description="Compile Time dependencies"/>
</configurations>
<dependencies>
<dependency org="junit" name="junit" rev="4.8.2" conf="compile,test"/>
</dependencies>
</ivy-module>
ProjectZ的ivy.xml延伸常見,但沒有定義任何依賴性附加
<?xml-stylesheet type="text/xsl" href="http://repository.temenosgroup.com/xsl/version-doc.xsl"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info module="ProjectZ" >
<extends extendType="all"
organisation="xyz"
module="CommonDependency"
revision="1.0.0"
location="../parent/common-ivy.xml" />
</info>
<dependencies />
</ivy-module>
項目A的ivy.xml共同延伸,以及如定義其對ProjectZ的依賴性
<?xml-stylesheet type="text/xsl" href="http://repository.temenosgroup.com/xsl/version-doc.xsl"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info module="ProjectA" >
<extends extendType="all"
organisation="xyz"
module="CommonDependency"
revision="1.0.0"
location="../parent/common-ivy.xml" />
</info>
<dependencies>
<dependency org="xyz" name="ProjectZ" branch="15" rev="latest-dev" conf="compile,test"/>
</dependencies>
</ivy-module>
當我通過這個列表到ivy:buildlist
其返回的順序;
ProjectA, ProjectZ
這是不正確它應返回;
ProjectZ, ProjectA
我使用的是IVY 2.3.0。這是IVY中的錯誤還是我錯過了一些東西?
你的擴展聲明不應該包含branch =「15」來正確引用common-ivy.xml嗎? – 2014-09-12 00:48:19
extends不支持'branch'屬性,它將直接從common-ivy.xml中使用到每個項目中。問題出在ProjectA聲明它依賴於ProjectZ的依賴項,但是IVY無法識別它 – SJunejo 2014-09-12 19:11:29