常春藤没有下载Jar的二级依赖

时间:2015-03-25 18:14:05

标签: maven ant dependencies ivy

我们在Ivy和Maven之间有一些传递问题:

  • 我们有一个名为ivylib的项目。 Ivylib是一个Ant / Ivy项目,依赖于另一个名为mvnlib的项目。
  • Mvnlib依赖于另一个名为jersey-client的项目。这又取决于jersey-core。这两者都是com.sun.jersey groupId
  • 的一部分

在Mvnlib pom.xml文件中,我们有以下依赖项:

<dependency>
    <groupId>com.sun.jersey</groupId>
     <artifactId>jersey-client</artifactId>
     <version>1.19</version>

查看jersey-client项目,我在其pom.xml文件中看到以下依赖项:

<profiles>
    ....
    <profile>
        <id>default</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <dependencies>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
    </profile>
</profiles>

在Ivylib项目的ivy.xml文件中,我们有以下依赖项:

<dependency org="com.travelclick"       name="ivylib"
    rev="2.1"                   conf="compile->default"/>

除了jersey-core jar的辅助依赖项外,Mvnlib的所有依赖项都被下载并包含在Ivylib中。

我怀疑它与<profile>依赖项中的依赖关系有关,而不是在文件本身中列出。我想知道是否还有核心 jar下载。

目前,我们只是简单地参与了Mvnlib项目中的jersey-core jar,但我想知道是否还有另一种方式。

1 个答案:

答案 0 :(得分:0)

最好的办法是检查您的缓存位置以确定您的IVY。一旦我查看了jersey-client的依赖列表,我注意到了#34; jersey-core&#34;不是其中之一。请参阅下面从POM生成的ivy-1.19.xml文件:

<dependencies>
    <dependency org="junit" name="junit" rev="4.8.2" force="true" conf="test->runtime(*),master(*)"/>
    <dependency org="com.sun.net.httpserver" name="http" rev="20070405" force="true" conf="test->runtime(*),master(*)"/>
    <dependency org="org.osgi" name="osgi_R4_core" rev="1.0" force="true" conf="provided->compile(*),provided(*),runtime(*),master(*)"/>
    ...
</dependencies>

我只想在我的常春藤文件中添加另一个依赖项。复制/粘贴&#34; jersey-cleint&#34;依赖行并改为&#34; jersey-core&#34;。如果POM有&#34; jersey-core&#34;那将是很好的。尽管不是正确列出的吗? : - )