我正在使用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
答案 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
之类的内容。然后,您需要重复其他缺失的工件。