0

考虑到以下常春藤依赖项,

<dependency org="org.fusesource.restygwt" name="restygwt" rev="1.3"
 conf="gwtcompile->default; compile->default"/>

<dependency org="org.jboss.resteasy" name="resteasy-jaxrs" rev="2.3.4.Final"
 conf="compile->compile(*),runtime(*);runtime->runtime(*)"/>

它们依赖于镜像的公共 maven 存储库

http://myivyserver:8888/mirrored/ 。

正如 ivysettings 解析器指定的链接到 ...

<url name="mirrored" m2compatible="true">
  <artifact
    pattern="http://myivyserver:8888/mirrored/${maven2.artifact.pattern}" />
</url>

在哪里我可以看到镜像目录完全复制了远程 maven repos 的工件。

我习惯了 Maven,并且在 Eclipse 上看到构建路径显示了 Maven 依赖项。

现在,我正在为一个项目创建 Ivy 依赖项。我期待看到类似的,而且我确实看到了一个类似的 Ivy 依赖节点,由于 Ivy eclipse 插件,它显示了所有的 jar。

但是,eclipse buildpath 中的 Ivy 依赖节点不显示任何由镜像 pom 传递指定的 jar。

例如,

<dependency org="org.fusesource.restygwt" name="restygwt" rev="1.3"
 conf="gwtcompile->default; compile->default"/>

<dependency org="org.jboss.resteasy" name="resteasy-jaxrs" rev="2.3.4.Final"
 conf="compile->compile(*),runtime(*);runtime->runtime(*)"/>

两个依赖项的 pom 都指定了对 javax.ws.rs (jsr311-api) 的依赖项

<dependency>
  <groupId>javax.ws.rs</groupId>
  <artifactId>jsr311-api</artifactId>
  <version>1.1</version>
  <scope>provided</scope>
</dependency>

但是 javax.ws.rs(jsr311-api) 并没有像 Maven 管理的项目那样出现在 ivy 托管项目的 buildpath 库中。

我还需要做什么才能让 ivy 插件解决由于 maven pom 引起的传递依赖?

谢谢你。

4

1 回答 1

1

URL 解析器考虑 maven 布局但不考虑 pom 依赖项。当我实现这个功能时,ibiblio 解析器能够解析 pom 的依赖项。

http://ant.apache.org/ivy/history/latest-milestone/resolver/ibiblio.html
<ibiblio name="maven2" m2compatible="true" root="http://myivyserver:8888/mirrored">

我使用它的时间不长,因为我更喜欢代码中的非传递依赖项,所以我已经完成了使用纯 url 解析器。

于 2012-08-30T20:33:17.367 回答