常春藤没有安装一些JAR

时间:2011-06-02 18:08:34

标签: ant ivy dependency-management

我正在使用Ivy进行项目依赖管理,除了我一直有的一个问题之外,它一直运作良好。 Ivy正在下载某些依赖项,但它并没有将它们安装到我的项目中。例如,log4j.jar没有被放入项目的lib文件夹中,即使它被列为依赖项并且正在成功下载。这是我决心的输出:

ivy-resolve:
[ivy:configure] :: Ivy 2.2.0 - 20100923230623 :: http://ant.apache.org/ivy/ ::
[ivy:configure] :: loading settings :: file = C:\...\...\...\...\ivysettings.xml
 [ivy:resolve] :: resolving dependencies :: com.gdi#gdi-core;0.0.1.SNAPSHOT
 [ivy:resolve]  confs: [default]
 [ivy:resolve]  found org.apache.axis#axis;1.4 in archiva.internal
 [ivy:resolve]  found org.apache.axis#axis-jaxrpc;1.4 in archiva.internal
 [ivy:resolve]  found org.apache.axis#axis-saaj;1.4 in archiva.internal
 [ivy:resolve]  found wsdl4j#wsdl4j;1.6.2 in archiva.internal
 [ivy:resolve]  found org.slf4j#slf4j-log4j12;1.6.1 in archiva.internal
 [ivy:resolve]  found org.slf4j#slf4j-api;1.6.1 in archiva.internal
 [ivy:resolve]  found log4j#log4j;1.2.16 in archiva.internal
 [ivy:resolve]  found log4j#apache-log4j-extras;1.1 in archiva.internal
 [ivy:resolve]  found org.apache.commons#commons-email;1.1 in archiva.internal
 [ivy:resolve]  found javax.mail#mail;1.4 in archiva.internal
 [ivy:resolve]  found javax.activation#activation;1.1 in archiva.internal
 [ivy:resolve]  found commons-discovery#commons-discovery;0.4 in archiva.internal
 [ivy:resolve]  found commons-logging#commons-logging;1.1 in archiva.internal
 [ivy:resolve]  found logkit#logkit;1.0.1 in archiva.internal
 [ivy:resolve]  found avalon-framework#avalon-framework;4.1.3 in archiva.internal
 [ivy:resolve]  found org.hibernate#hibernate-core;3.6.3.Final in archiva.internal
 [ivy:resolve]  found antlr#antlr;2.7.6 in archiva.internal
 [ivy:resolve]  found commons-collections#commons-collections;3.1 in archiva.internal
 [ivy:resolve]  found dom4j#dom4j;1.6.1 in archiva.internal
 [ivy:resolve]  found org.hibernate#hibernate-commons-annotations;3.2.0.Final in archiva.internal
 [ivy:resolve]  found org.hibernate.javax.persistence#hibernate-jpa-2.0-api;1.0.0.Final in archiva.internal
 [ivy:resolve]  found javax.transaction#jta;1.1 in archiva.internal
 [ivy:resolve]  found javax.validation#validation-api;1.0.0.GA in archiva.internal
 [ivy:resolve]  found ant#ant;1.6.5 in archiva.internal
 [ivy:resolve]  found javassist#javassist;3.12.0.GA in archiva.internal
 [ivy:resolve]  found cglib#cglib;2.2 in archiva.internal
 [ivy:resolve]  found asm#asm;3.1 in archiva.internal
 [ivy:resolve]  found org.hibernate#hibernate-validator;4.1.0 in archiva.internal
 [ivy:resolve]  found org.hibernate#hibernate-ehcache;3.6.3.Final in archiva.internal
 [ivy:resolve]  found net.sf.ehcache#ehcache-core;2.4.1 in archiva.internal
 [ivy:resolve]  found org.hibernate#hibernate-entitymanager;3.6.3.Final in archiva.internal
 [ivy:resolve]  found org.hibernate#hibernate-search;3.4.0.Final in archiva.internal
 [ivy:resolve]  found org.hibernate#hibernate-search-analyzers;3.4.0.Final in archiva.internal
 [ivy:resolve]  found org.apache.lucene#lucene-core;3.1.0 in archiva.internal
 [ivy:resolve]  found org.apache.lucene#lucene-analyzers;3.1.0 in archiva.internal
 [ivy:resolve]  found org.apache.solr#solr-analysis-extras;3.1.0 in archiva.internal
 [ivy:resolve]  found org.apache.solr#solr-core;3.1.0 in archiva.internal
 [ivy:resolve]  found org.apache.solr#solr-solrj;3.1.0 in archiva.internal
 [ivy:resolve]  found commons-io#commons-io;1.4 in archiva.internal
 [ivy:resolve]  found org.apache.lucene#lucene-highlighter;3.1.0 in archiva.internal
 [ivy:resolve]  found org.apache.lucene#lucene-memory;3.1.0 in archiva.internal
 [ivy:resolve]  found org.apache.lucene#lucene-misc;3.1.0 in archiva.internal
 [ivy:resolve]  found org.apache.lucene#lucene-spatial;3.1.0 in archiva.internal
 [ivy:resolve]  found org.apache.lucene#lucene-spellchecker;3.1.0 in archiva.internal
 [ivy:resolve]  found org.apache.solr#solr-commons-csv;3.1.0 in archiva.internal
 [ivy:resolve]  found commons-codec#commons-codec;1.4 in archiva.internal
 [ivy:resolve]  found commons-lang#commons-lang;2.4 in archiva.internal
 [ivy:resolve]  found org.apache.lucene#lucene-smartcn;3.1.0 in archiva.internal
 [ivy:resolve]  found org.apache.lucene#lucene-stempel;3.1.0 in archiva.internal
 [ivy:resolve]  found javax.jms#jms;1.1 in archiva.internal
 [ivy:resolve]  found javax.annotation#jsr250-api;1.0 in archiva.internal
 [ivy:resolve]  found org.hibernate#hibernate-search-infinispan;3.4.0.Final in archiva.internal
 [ivy:resolve]  found org.infinispan#infinispan-lucene-directory;4.2.1.FINAL in archiva.internal
 [ivy:resolve]  found org.infinispan#infinispan-core;4.2.1.FINAL in archiva.internal
 [ivy:resolve]  found org.jgroups#jgroups;2.12.0.Final in archiva.internal
 [ivy:resolve]  found org.jboss.javaee#jboss-transaction-api;1.0.1.GA in archiva.internal
 [ivy:resolve]  found org.jboss.marshalling#river;1.2.3.GA in archiva.internal
 [ivy:resolve]  found org.jboss.marshalling#marshalling-api;1.2.3.GA in archiva.internal
 [ivy:resolve]  found org.rhq.helpers#rhq-pluginAnnotations;3.0.1 in archiva.internal
 [ivy:resolve]  found i18nlog#i18nlog;1.0.10 in archiva.internal
 [ivy:resolve]  found org.hibernate#hibernate-c3p0;3.6.3.Final in archiva.internal
 [ivy:resolve]  found c3p0#c3p0;0.9.1 in archiva.internal
 [ivy:resolve]  found org.apache.lucene#lucene-queries;3.1.0 in archiva.internal
 [ivy:resolve]  found jakarta-regexp#jakarta-regexp;1.4 in archiva.internal
 [ivy:resolve]  found postgresql#postgresql;9.0-801.jdbc4 in archiva.internal
 [ivy:resolve]  found org.drools#drools-jsr94;5.1.1 in archiva.internal
 [ivy:resolve]  found org.drools#drools-core;5.1.1 in archiva.internal
 [ivy:resolve]  found org.mvel#mvel2;2.0.16 in archiva.internal
 [ivy:resolve]  found org.drools#drools-api;5.1.1 in archiva.internal
 [ivy:resolve]  found org.drools#drools-compiler;5.1.1 in archiva.internal
 [ivy:resolve]  found org.antlr#antlr-runtime;3.1.3 in archiva.internal
 [ivy:resolve]  found org.eclipse.jdt.core.compiler#ecj;3.5.1 in archiva.internal
 [ivy:resolve]  found org.drools#drools-decisiontables;5.1.1 in archiva.internal
 [ivy:resolve]  found org.drools#drools-templates;5.1.1 in archiva.internal
 [ivy:resolve]  found net.sourceforge.jexcelapi#jxl;2.6.10 in archiva.internal
 [ivy:resolve]  found jsr94#jsr94;1.1 in archiva.internal
 [ivy:resolve]  found javax.xml.bind#jaxb-api;2.2.1 in archiva.internal
 [ivy:resolve]  found javax.xml.stream#stax-api;1.0-2 in archiva.internal
 [ivy:resolve] :: resolution report :: resolve 3414ms :: artifacts dl 98ms
 [ivy:resolve]  :: evicted modules:
 [ivy:resolve]  commons-logging#commons-logging;1.0.4 by [commons-logging#commons-logging;1.1] in [default]
 [ivy:resolve]  log4j#log4j;1.2.12 by [log4j#log4j;1.2.16] in [default]
 [ivy:resolve]  org.slf4j#slf4j-api;1.5.5 by [org.slf4j#slf4j-api;1.6.1] in [default]
 [ivy:resolve]  log4j#log4j;1.2.14 by [log4j#log4j;1.2.16] in [default]
    ---------------------------------------------------------------------
    |                  |            modules            ||   artifacts   |
    |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
    ---------------------------------------------------------------------
    |      default     |   82  |   0   |   0   |   4   ||  101  |   0   |
    ---------------------------------------------------------------------
[ivy:retrieve] :: retrieving :: com.gdi#gdi-core [sync]
[ivy:retrieve]  confs: [default]
[ivy:retrieve]  0 artifacts copied, 73 already retrieved (0kB/45ms)
BUILD SUCCESSFUL
Total time: 5 seconds

文件log4j.jar,infinispan-core-4.2.1.FINAL.jar和apache-log4j-extras-1.1没有像其他文件一样添加到我的lib目录中,我必须手动添加它们。不确定是什么导致了这个或如何解决它。任何帮助将不胜感激。

这是带有依赖项的ivy.xml文件。 Log4j是slf4j-log4j12的依赖项,infinispan是hibernate-search-infinispan的依赖项。 log4j extras是我项目的依赖项。

<?xml version="1.0" encoding="UTF-8"?>
<ivy-module
   version="2.0"
   xmlns:m="http://ant.apache.org/ivy/maven"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
   <info
      organisation="com.gdi"
      module="gdi-core"
      revision="0.0.1.SNAPSHOT" />
   <dependencies>
      <dependency
         org="org.apache.axis"
         name="axis"
         rev="1.4" />
      <dependency
         org="org.apache.axis"
         name="axis-jaxrpc"
         rev="1.4" />
      <dependency
         org="org.apache.axis"
         name="axis-saaj"
         rev="1.4" />
      <dependency
         org="wsdl4j"
         name="wsdl4j"
         rev="1.6.2" />
      <dependency
         org="org.slf4j"
         name="slf4j-log4j12"
         rev="1.6.1" />
      <dependency
         org="log4j"
         name="apache-log4j-extras"
         rev="1.1" />
      <dependency
         org="org.apache.commons"
         name="commons-email"
         rev="1.1" />
      <dependency
         org="commons-discovery"
         name="commons-discovery"
         rev="0.4">
         <exclude
            module="servlet-api" />
      </dependency>
      <dependency
         org="commons-logging"
         name="commons-logging"
         rev="1.1">
         <exclude
            module="servlet-api" />
      </dependency>
      <dependency
         org="org.hibernate"
         name="hibernate-core"
         rev="3.6.3.Final">
         <exclude
            module="jboss-jacc-api_JDK4" />
      </dependency>
      <dependency
         org="org.hibernate"
         name="hibernate-validator"
         rev="4.1.0" />
      <dependency
         org="org.hibernate"
         name="hibernate-ehcache"
         rev="3.6.3.Final" />
      <dependency
         org="org.hibernate"
         name="hibernate-entitymanager"
         rev="3.6.3.Final" />
      <dependency
         org="org.hibernate"
         name="hibernate-search"
         rev="3.4.0.Final">
         <exclude
            module="jgroups" />
      </dependency>
      <dependency
         org="org.hibernate"
         name="hibernate-search-infinispan"
         rev="3.4.0.Final" />
      <dependency
         org="org.hibernate"
         name="hibernate-c3p0"
         rev="3.6.3.Final" />
      <dependency
         org="org.hibernate"
         name="hibernate-commons-annotations"
         rev="3.2.0.Final" />
      <dependency
         org="org.apache.lucene"
         name="lucene-queries"
         rev="3.1.0" />
      <dependency
         org="postgresql"
         name="postgresql"
         rev="9.0-801.jdbc4" />
      <dependency
         org="org.drools"
         name="drools-jsr94"
         rev="5.1.1" />
   </dependencies>
</ivy-module>

更新

似乎未下载的库是“Bundles”......

 [ivy:resolve]  [NOT REQUIRED] org.slf4j#slf4j-api;1.6.1!slf4j-api.jar
 [ivy:resolve]  [NOT REQUIRED] log4j#log4j;1.2.16!log4j.jar(bundle)
 [ivy:resolve]  [NOT REQUIRED] javax.mail#mail;1.4!mail.jar

3 个答案:

答案 0 :(得分:42)

发现了这个问题。问题是缺少的依赖项是“bundle”而我的ant脚本设置为只安装“jar”...

<ivy:retrieve pattern="${ivy.lib.dir}/[artifact].[revision].[ext]"
                type="jar"
                sync="true" />

修正版:

<ivy:retrieve pattern="${ivy.lib.dir}/[artifact].[revision].[ext]"
                type="jar,bundle"
                sync="true" />

答案 1 :(得分:3)

尝试将conf映射的左侧设置为默认值。例如conf="runtime->default"解决了我的问题。

编辑:这可以在<dependency>标记的ivy.xml中找到。例如:

<dependencies>
    <dependency conf="runtime->default" name="jsf-api" org="com.sun.faces" rev="2.2.13"/>   
</dependencies>

部分->default是关键。

答案 2 :(得分:2)

您应该验证您正在使用的conf映射用于那些丢失的jar。特别是,如果您对log4j有conf,例如compile,则它实际上不会检索任何内容,因为log4j是使用conf maste r发布的。您需要将conf设置为compile->master之类的内容。然后,您需要重复其他缺失的工件。