Apache IVY : Chain tag
Asked Answered
B

1

1

I am new to the apache IVY. I was not able to download the springframework.web.servlet from the default repository(MAVEN) as this jar file is not present in maven repository so for adding a new repository which have this file i have used the Chain tag. But the problem is its downloading all the jar files from maven repo and the springframework.web.servlet from other repository but after that its again try to download all the other jar files from the second repository.

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>
Behr answered 24/2, 2012 at 6:24 Comment(0)
A
4

I think your issue is that your default resolver is still set to be libraries instead of chained.....

Am I correct in assuming you want to use Maven Central for all dependencies, except those exceptions listed in your modules section? If that is so, then you don't 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've dropped the "usePoms=false" attribute to the Maven central resolver. You're losing one to the main benefits of using a Maven repo. Pulling down dependencies automatically instead of having to reverse engineer other people's builds :-)
Ashely answered 24/2, 2012 at 11:2 Comment(5)
one more thins i wanted to ask.....can u tell how we can have multiple ivy.xml for same project....means i wanted different ivy.xml for my different services.. means if i wanted only hibernate dependencies to get injected then only my ivy.xml containing hibernate dependencies should be loaded....can u explain me with an example.....Behr
@user1230077 That sounds like a job solved by using ivy configurations. Post a new question with an example problem.Rafat
I have 5 modules 1- Module 1 -ivy.xml 2- Module 2 -ivy.xml 3- Module 3-ivy.xml Like this seperate ivy.xml for each module . I dont have any example code.Behr
Sounds like a multi-module build. See this posting: #4106643Rafat
12 years after, inherinting from a quite old build ant+ivy build system , I found this post very useful :)Sect

© 2022 - 2024 — McMap. All rights reserved.