java - 使用 Ivy 指定传递依赖关系

标签 java ant dependencies ivy transitive-dependency

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

模块 A 和 B 都正在使用 Ivy 从 ant 脚本发布到 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 文件。我需要在 jar 内创建并捆绑 Ivy 的等效项吗?

谢谢。

编辑

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

我即将决定 Ivy、IvyDE 和/或 Artifactory 都是浪费时间……有人可以建议一下可能出了什么问题吗?

最佳答案

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

请注意,我仍在使用 ibiblio 解析器来处理 junit 等外部依赖项。

关于java - 使用 Ivy 指定传递依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24284836/

相关文章:

java - 如何在 Android 中使用自定义按钮实现自定义操作栏?

java - 关于AlarmManager的疑惑——Android

使用 Ant 时出现 java.security.AccessControlException,但从控制台调用 java 时运行正常

Eclipse:如何将项目源文件和ant build.xml与Eclipse工作区分开?

linux - Ant:查找:缺少 `-exec' 的参数

ruby-on-rails - 将 HAML 和 SASS 更新到 3.1

Java:定义新矩形时出现数组语法错误

linux - 如何在 Ant Target 中一次运行多个 Unix 命令

C++ 组合,一个对象如何知道它所在的类?

javascript - 如何告诉 webpack 额外的依赖?