使用Ivy指定传递依赖



好,假设我有一个模块,我所有的项目都建立在Module_A上,然后我有一个模块,Module_B,它建立在a上最后我有一个顶层项目,它依赖于B,所以也需要适当的a版本

模块A和B都是从ant脚本使用Ivy发布到Artifactory的。当我开始开发模块B时,我可以使用IvyDE来解决我对模块a的依赖。

我遇到的问题是,当我来开发我的顶级项目时,我指定我依赖模块B,我希望模块A也从Artifactory中拔出,但这不会发生,我不确定我需要做些什么来实现它。

因此,为了使下面的ivy文件更清晰,我希望模块B和它的依赖模块A都出现在我的类路径上,就像变魔术一样。

<dependencies>
   <dependency org="MY_ORG" name="NAME" rev="latest.integration">
      <artifact name="MODULE_B" type="jar" ext="jar" />
   </dependency>
</dependencies>

当我查看已解析的一些jar时,例如guava,它的META-INF目录中填充了一个pom文件。是否有一个等价的Ivy,我需要创建并捆绑在罐子里?

谢谢。

编辑

我相信上面的一些是不正确的,IvyDE应该只是使用由artifactory托管的ivy文件来确定传递依赖关系,而不是查看jar -当我查看artifactory持有的文件时,它确实定义了我想要解决的传递依赖关系。当我查看IvyDE缓存时,它包含一个不同的ivy文件,其默认配置在artifactory中不存在,也没有依赖项!

我快要决定Ivy, IvyDE和/或Artifactory都是浪费时间了…谁能告诉我哪里出了问题?

这个问题,我相信我已经解决了,通过使用URL解析器而不是ibiblio。尽管使用Ivy向工件发布并使用Ivy解析依赖项,但我还是需要使用URL解析器来指定Ivy模式。一旦我这样做了,我的传递依赖就开始被解决了。

只是要注意,我仍然使用ibiblio解析器为我的外部依赖,如junit。

相关内容

  • 没有找到相关文章

最新更新