I'm using Ivy for project dependency management and it's been working well aside from one issue which I've always had. There are certain dependencies that Ivy is downloading but it's not installing them into my project. For example, log4j.jar is not being put in the project's lib folder even though it's listed as a dependency and is being downloaded successfully. Here's the output from my resolve:
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
The files log4j.jar, infinispan-core-4.2.1.FINAL.jar, and apache-log4j-extras-1.1 are not added to my lib directory like the others and I have to add them manually. Not sure what's causing this or how to fix it. Any help would be appreciated.
Here's the ivy.xml file with the dependencies. Log4j is a dependency of slf4j-log4j12 and infinispan is a dependency of hibernate-search-infinispan. log4j extras is a dependency of my project.
<?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>
Update:
Seems like the libraries not being downloaded are "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
If you use ant 1.6. 0 or superior, you can then simply go to the src/example/hello-ivy dir and run ant: if the build is successful, you have successfully installed Ivy! You can now run the build, if it is successful, you have successfully installed Ivy!
Ivy is a dependency manager -- it manages and controls the JAR files that your project depends on. If you don't have the JARs, it will pull them down for you by default (from the Maven 2 repository), which can make project setup a lot easier.
The Ivy settings file: ivysettings. xml is used to configure resolution and deployment of artifacts using repositories in Artifactory. The Ivy modules file: ivy. xml is where the project's modules and dependencies are declared.
Found the issue. The problem was that the missing dependencies were "bundle" and my ant script was set to only install "jar" ...
<ivy:retrieve pattern="${ivy.lib.dir}/[artifact].[revision].[ext]"
type="jar"
sync="true" />
Fixed version:
<ivy:retrieve pattern="${ivy.lib.dir}/[artifact].[revision].[ext]"
type="jar,bundle"
sync="true" />
Try setting the left side of conf mapping to default. For example conf="runtime->default"
That resolved my issue.
Edit: This can be found in ivy.xml, in the <dependency>
tag. For eg:
<dependencies>
<dependency conf="runtime->default" name="jsf-api" org="com.sun.faces" rev="2.2.13"/>
</dependencies>
The part ->default
is the key.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With