0

好的,假设我有一个模块,我的所有项目都建立在“Module_A”上,然后我有“Module_B”,它建立在 A 上,最后我有一个依赖于 B 的顶级项目,因此也需要适当的版本一个。

模块 A 和 B 都使用 ant 脚本中的 Ivy 发布到 Artifactory。当我来开发 Module BI 时,可以使用 IvyDE 来解决我对 Module 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>

当我查看一些我已经解决的罐子时,比如说番石榴,它的 META-INF 目录中填充了一个 pom 文件。我需要在 jar 中创建和捆绑常春藤的等价物吗?

谢谢。

编辑

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

我正要决定 Ivy、IvyDE 和/或 Artifactory 都是浪费时间……有人可以建议可能出了什么问题。

4

1 回答 1

1

我相信我已经通过使用 URL 解析器而不是 ibiblio 解决了这个问题。尽管使用 Ivy 发布到工件并使用 Ivy 解析我的依赖项,但我需要使用 URL 解析器来允许我指定 ivy 模式。完成此操作后,我的传递依赖关系开始得到解决。

请注意,我仍在为我的外部依赖项(如 junit)使用 ibiblio 解析器。

于 2014-08-06T09:38:22.560 回答