我無法通過配置名稱檢索我期望的依賴關係。我有一個共享庫,我發佈到本地存儲庫,使用以下常青藤文件:常春藤解決其他配置中的依賴關係
<?xml version="1.0"?>
<ivy-module version="2.0">
<info organisation="my.org" module="my-stuff" status="release"/>
<configurations>
<conf name="runtime"/>
<conf name="provided" extends="runtime"/>
<conf name="test" extends="provided"/>
</configurations>
<publications>
<artifact name="my-stuff" type="jar" ext="jar" conf="*"/>
<artifact name="my-stuff" type="source" ext="zip" conf="*"/>
</publications>
<dependencies>
<dependency org="javax.servlet" name="servlet-api" rev="2.4" conf="provided,test -> master"/>
<dependency org="org.apache.tomcat" name="tomcat-dbcp" rev="7.0.47" conf="provided,test -> master"/>
<dependency org="log4j" name="log4j" rev="1.2.17" conf="* -> master"/>
<dependency org="my.org" name="my-module" rev="1.2.3" conf="* -> default"/>
<dependency org="junit" name="junit" rev="4.5" conf="provided,test -> master"/>
<dependency org="org.apache.ant" name="ant" rev="1.8.4" conf="provided,test -> master"/>
</dependencies>
</ivy-module>
到目前爲止,這麼好。我發佈my-stuff
jar,如果我嘗試通過配置檢索它的依賴關係,我會得到我期望的結果,運行時配置中有兩個依賴關係,每個提供的配置和測試配置中都有六個依賴關係。當我試圖檢索取決於my-stuff
的東西的依賴關係時,麻煩就開始了。我用這個ivy文件:
<?xml version="1.0"?>
<ivy-module version="2.0">
<info organisation="my.org" module="test-my-stuff" status="release"/>
<configurations>
<conf name="runtime"/>
<conf name="provided" extends="runtime"/>
<conf name="test" extends="provided"/>
</configurations>
<dependencies>
<dependency org="my.org" name="my-stuff" rev="1.1"/>
</dependencies>
</ivy-module>
現在,如果我嘗試檢索runtime
配置,而不是得到的my-stuff
罐子,log4j
和my-module
,我得到12瓶,其中包括activation.jar
和mail.jar
,事情我不明白當我使用第一個常春藤文件來檢索。爲什麼我的第二個常青藤文件將所有內容都拉入運行時配置中?我究竟做錯了什麼?
另一方面,如果我在第二個文件(如runtime->runtime;provided->provided;test->test
)中添加了對依賴項的配置映射,則解析將失敗,聲稱找不到my-stuff
。
好的,謝謝。這解決了我的問題。 – 2015-04-06 13:40:24
其他的東西是我的問題的一部分 - 如果您不更新發布版本,緩存不會更新。所以清除緩存也是必要的。 – 2015-04-09 12:51:32
@DavidStanley啊...那麼這就是緩存的目的....我通過使用非常有用的ivy buildnumber任務來每次發佈工件時生成唯一的版本號,從而避免了這個問題。參見:http://ant.apache.org/ivy/history/latest-milestone/use/buildnumber.html – 2015-04-09 20:31:52