常春藤下载的罐子比预期的要多

Posted

技术标签:

【中文标题】常春藤下载的罐子比预期的要多【英文标题】:Ivy downloading more jars than expected 【发布时间】:2011-11-14 10:59:46 【问题描述】:

总结: Ivy 下载的 jars 比我预期的要多,我不知道为什么。

详情: 我正在将我的项目从使用 Maven Ant Tasks 进行依赖管理转换为 Ivy。

到目前为止,我做了以下工作:

    将 IvyDE 安装到我的 Eclipse (Helios) 中 创建了一个 ivy.xml 因为我之前成功使用了 Maven Ant 任务,所以我复制了我的 从我的 build.xml 到 ivy.xml。我确定要改变 使用 Ivy 格式(org、name、rev)的依赖声明。 将 IvyDE 类路径容器添加到我的 Eclipse 项目中。

现在,当我在 Eclipse 中运行 Ivy > Resolve 时,我可以看到 279 个 jar 被下载到“.ivy2\cache”。这比 Maven Ant Tasks 之前下载的 65 个 jar 包要多。

为什么常春藤要倒下这么多罐子?我知道 Ivy 也降低了源代码和一些 javadoc jars。这解释了一些额外的罐子,但我认为 Ivy 最多应该下载 195 个罐子(65*3)而不是 279 个。

我错过了什么或做错了什么?如有任何反馈和建议,我将不胜感激。

这是我的 ivy.xml 的内容

<?xml version="1.0" encoding="ISO-8859-1"?>

<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info
    organisation="org.robbins"
    module="FlashCardsWeb"
    status="integration">
</info>

<dependencies>

    <dependency org="org.apache.struts" name="struts2-core" rev="2.2.3"/>

    <dependency org="org.apache.struts" name="struts2-spring-plugin" rev="2.2.3">
        <exclude org="org.springframework" name="spring-web" />
        <exclude org="org.springframework" name="spring-beans" />
        <exclude org="org.springframework" name="spring-context" />
        <exclude org="org.springframework" name="spring-core" />
    </dependency>

    <dependency org="org.springframework" name="spring-web" rev="3.0.5.RELEASE"/>
    <dependency org="org.springframework" name="spring-beans" rev="3.0.5.RELEASE"/>
    <dependency org="org.springframework" name="spring-context" rev="3.0.5.RELEASE"/>
    <dependency org="org.springframework" name="spring-core" rev="3.0.5.RELEASE"/>
    <dependency org="org.springframework" name="spring-jdbc" rev="3.0.5.RELEASE"/>
    <dependency org="org.springframework" name="spring-orm" rev="3.0.5.RELEASE"/>

    <dependency org="org.apache.struts" name="struts2-tiles-plugin" rev="2.2.1.1"/>
    <dependency org="com.jgeppert.struts2.jquery" name="struts2-jquery-plugin" rev="3.0.1"/>
    <dependency org="com.jgeppert.struts2.jquery" name="struts2-jquery-richtext-plugin" rev="3.0.1"/>

    <dependency org="org.hibernate" name="hibernate-core" rev="3.6.2.Final"/>
    <dependency org="org.hibernate" name="hibernate-c3p0" rev="3.6.2.Final"/>
    <dependency org="org.hibernate" name="hibernate-entitymanager" rev="3.6.2.Final"/>
    <dependency org="org.hibernate" name="hibernate-tools" rev="3.2.4.GA"/>
    <dependency org="c3p0" name="c3p0" rev="0.9.1"/>

    <dependency org="org.slf4j" name="slf4j-simple" rev="1.6.1"/>
    <dependency org="commons-logging" name="commons-logging" rev="1.0.4"/>

    <dependency org="mysql" name="mysql-connector-java" rev="5.1.15"/>
    <dependency org="junit" name="junit" rev="4.8.1"/>
    <dependency org="log4j" name="log4j" rev="1.2.14"/>
    <dependency org="org.openid4java" name="openid4java-nodeps" rev="0.9.6" />
    <dependency org="org.apache.httpcomponents" name="httpclient" rev="4.0" />
    <dependency org="net.sourceforge.nekohtml" name="nekohtml" rev="1.9.10" />
</dependencies>

【问题讨论】:

【参考方案1】:

我遇到了类似的问题,发现此邮件有帮助。

问题是,如果你不指定任何 conf,Ivy 会假设你想要所有 spring的配置,包括可选的conf。试试看 而是:

<dependency org="org.springframework" name="spring" rev="2.0.3"
conf="*->default"/>

http://mail-archives.apache.org/mod_mbox/ant-ivy-user/200703.mbox/%3C635a05060703310946q2f50880aqe07219c9e3026b83@mail.gmail.com%3E

【讨论】:

以上是关于常春藤下载的罐子比预期的要多的主要内容,如果未能解决你的问题,请参考以下文章

将发送到常春藤的罐子发布到 Nexus

带有 ListView Asynctask 的多下载器

iOS 使用 NSOperationQueue 和 AFNetworking 实现多下载功能

解决常春藤的最佳链

解决常春藤中的maven test-jar

为啥这段代码的执行速度比预期的要快?