2011-06-02 194 views
14

我使用常春藤来进行项目依赖管理,除了一直存在的问题之外,它一直工作得很好。常春藤正在下载某些依赖项,但并未将它们安装到我的项目中。例如,log4j.jar没有被放入项目的lib文件夹中,即使它被列为依赖项并正在成功下载。下面是我的决心输出:常春藤没有安装一些JAR

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的核心 - 4.2.1.FINAL.jar和Apache的log4j的,额外-1.1不添加到我的lib目录下的其他人一样我必须手动添加它们。不知道是什么原因造成的或如何修复它。任何帮助,将不胜感激。

下面是具有依赖关系的ivy.xml文件。 Log4j是slf4j-log4j12的依赖项,infinispan是hibernate-search-infinispan的依赖项。 log4j演员是我的项目的依赖项。

<?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> 

更新:

好像不被下载库“捆绑” ......

[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 
+0

某些模块被驱逐(http://ant.apache.org/ivy/history/2.1.0/ivyfile/conflicts.html)也许丢失的罐子是驱逐模块的依赖关系(很难说)。 – oers 2011-06-03 11:08:03

+0

这些冲突只是表明老版本的log4j被驱逐出log4j-1.2.16 – Mouscellaneous 2011-06-03 13:31:11

回答

38

发现问题。问题是,缺少的依赖是“捆绑”和我的ant脚本设置为只安装“罐子” ...

<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

+1为@杂项和-1为log4j - 为什么? – Andy 2013-05-23 12:45:33

+2

你碰巧知道“jar”和“bundle”类型之间的区别是什么? AFAIK [组织可以自由选择类型](http://ant.apache.org/ivy/history/latest-milestone/terminology.html#type),但在什么情况下会选择“捆绑”而不是“jar” ? – sschuberth 2014-08-14 07:39:21

+2

他们是OSGi包:http://stackoverflow.com/questions/5389691/what-is-the-meaning-of-type-bundle-in-a-maven-dependency – Mouscellaneous 2014-10-03 23:48:49

2

您应该确认您使用的conf映射这些失踪罐。特别是,如果您有log4j的compileconf,它实际上不会检索任何内容,因为log4j是的maste r。您需要将您的conf设置为compile->master之类的内容。然后您需要重复使用其他缺失的工件。

+0

所有缺失的依赖关系都有编译的范围,我相信它是默认的。 – Mouscellaneous 2011-06-03 14:01:11

3

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

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

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

部分->default是关键。