我无法通过配置名称检索我期望的依赖关系。我有一个共享库,我发布到本地存储库,使用以下常青藤文件:常春藤解决其他配置中的依赖关系
<?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