Apache IVY: chain tag

I am new to Apache IVY. I was unable to load the springframework.web.servlet file from the default repository (MAVEN), because this jar file is not in the maven repository, so I used the Chain tag to add a new repository that uses this file. But the problem is that it downloads all jar files from maven repo and springframework.web.servlet from another repository, but after that it tries to download all other jar files from the second repository again.

ivysettings.xml

<ivysettings> <settings defaultCache="${ivy.settings.dir}/ivy-cache" defaultResolver="libraries"/> <resolvers> <filesystem name="projects"> <artifact pattern="${repository.dir}/[artifact]-[revision].[ext]" /> <ivy pattern="${repository.dir}/[module]-[revision].xml" /> </filesystem> <chain name="chained"> <ibiblio name="libraries" m2compatible="true" usepoms="false" /> <ibiblio name="lib" m2compatible="true" root="https://oss.sonatype.org/content/repositories/springsource-releases"/> </chain> </resolvers> <modules> <module organisation="com.virtusa" name="dependee" resolver="projects"/> <module organisation="org.springframework" name="org.springframework.web.servlet" resolver="lib"/> </modules> </ivysettings> 

ivy.xml

 <ivy-module version="1.0"> <info organisation="com.virtusa" module="depender"/> <dependencies> <dependency org="org.springframework" name="spring-core" rev="3.0.4.RELEASE" /> <dependency org="org.springframework" name="spring-aop" rev="3.0.4.RELEASE" /> <dependency org="org.springframework" name="spring-hibernate3" rev="2.0.8" /> <dependency org="org.springframework" name="spring-context" rev="3.0.4.RELEASE" /> <dependency org="org.springframework" name="spring-beans" rev="3.0.4.RELEASE" /> <dependency org="org.springframework" name="spring-web" rev="3.0.4.RELEASE" /> <dependency org="org.springframework" name="spring-webmvc" rev="3.0.4.RELEASE" /> <!-- Added -Bauddhik--> <dependency org="org.springframework.security" name="spring-security-web" rev="3.0.4.RELEASE"/> <dependency org="org.springframework.security" name="spring-security-taglibs" rev="3.0.4.RELEASE"/> <dependency org="org.springframework.security" name="spring-security-core" rev="3.0.4.RELEASE"/> <dependency org="org.springframework.security" name="spring-security-config" rev="3.0.4.RELEASE"/> <dependency org="org.springframework.security" name="spring-security-acl" rev="3.0.4.RELEASE"/> <dependency org="org.springframework" name="spring-instrument-tomcat" rev="3.0.4.RELEASE"/> <dependency org="org.springframework" name="spring-jdbc" rev="3.0.4.RELEASE"/> <dependency org="org.springframework" name="spring-context-support" rev="3.0.4.RELEASE"/> <dependency org="org.springframework" name="spring-orm" rev="3.0.4.RELEASE"/> <dependency org="org.springframework" name="spring-jms" rev="3.0.4.RELEASE"/> <dependency org="org.springframework" name="spring-aspects" rev="3.0.4.RELEASE"/> <dependency org="org.springframework" name="spring-asm" rev="3.0.4.RELEASE"/> <dependency org="org.springframework" name="spring-expression" rev="3.0.4.RELEASE"/> <dependency org="javax.transaction" name="jta" rev="1.1"/> <dependency org="cglib" name="cglib" rev="2.1_3"/> <dependency org="dom4j" name="dom4j" rev="1.6.1"/> <dependency org="antlr" name="antlr" rev="2.7.6rc1"/> <dependency org="org.springframework" name="spring-tx" rev="3.0.4.RELEASE"/> <dependency org="org.springframework" name="spring-test" rev="3.0.4.RELEASE"/> <dependency org="org.springframework" name="spring-instrument" rev="3.0.4.RELEASE"/> <dependency org="org.springframework" name="spring-webmvc-portlet" rev="3.0.4.RELEASE"/> <dependency org="org.springframework" name="spring-oxm" rev="3.0.4.RELEASE"/> <dependency org="asm" name="asm" rev="3.3.1"/> <dependency org="asm" name="asm-attrs" rev="2.2.3"/> <dependency org="org.springframework" name="org.springframework.web.servlet" rev="3.0.4.RELEASE" /> <!-- end --> <dependency org="mysql" name="mysql-connector-java" rev="5.1.6" /> <dependency org="org.hibernate" name="hibernate-core" rev="3.3.1.GA" /> <dependency org="org.hibernate" name="hibernate-annotations" rev="3.4.0.GA" /> <dependency org="org.hibernate" name="hibernate-commons-annotations" rev="3.3.0.ga" /> <dependency org="javax.servlet" name="servlet-api" rev="2.5"/> <dependency org="taglibs" name="standard" rev="1.0.6"/> <dependency org="javax.servlet" name="jstl" rev="1.2"/> <dependency org="commons-lang" name="commons-lang" rev="2.0"/> <dependency org="commons-collections" name="commons-collections" rev="3.1"/> <dependency org="org.hibernate" name="ejb3-persistence" rev="3.3.2.Beta1"/> <dependency org="org.hibernate" name="hibernate-ehcache" rev="4.0.1.Final"/> </dependencies> </ivy-module> 
+1
source share
1 answer

I think your problem is that your default recognizer is still configured as libraries instead of chaining .....

Am I right in assuming that you want to use Maven Central for all dependencies except for the exceptions listed in your modules section? If so, then you do not need a chained resolver. The following settings file is much simpler:

 <ivysettings> <settings defaultCache="${ivy.settings.dir}/ivy-cache" defaultResolver="central"/> <resolvers> <ibiblio name="central" m2compatible="true"/> <filesystem name="local-projects"> <artifact pattern="${repository.dir}/[artifact]-[revision].[ext]" /> <ivy pattern="${repository.dir}/[module]-[revision].xml" /> </filesystem> <ibiblio name="spring-releases" m2compatible="true" root="https://oss.sonatype.org/content/repositories/springsource-releases"/> </resolvers> <modules> <module organisation="com.virtusa" name="dependee" resolver="local-projects"/> <module organisation="org.springframework" name="org.springframework.web.servlet" resolver="spring-releases"/> </modules> </ivysettings> 

Note:

  • I disabled the "usePoms = false" attribute for the central Maven resonator. You are losing one of the main benefits of using the Maven repository. Automatically shutting down dependencies instead of redesigning other people's assemblies :-)
+3
source

All Articles