Apache IVY: цепочка тегов

Я новичок в Apache IVY. Мне не удалось загрузить springframework.web.servlet из репозитория по умолчанию (MAVEN), так как этого файла jar нет в репозитории maven, поэтому для добавления нового репозитория, в котором есть этот файл, я использовал тег Chain. Но проблема в том, что он загружает все файлы jar из репозитория maven и springframework.web.servlet из другого репозитория, но после этого снова пытается загрузить все остальные файлы jar из второго репозитория.

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>

плющ.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>

ivy
person Bauddhik    schedule 24.02.2012    source источник


Ответы (1)


Я думаю, ваша проблема в том, что ваш распознаватель по умолчанию по-прежнему настроен на библиотеки вместо связанных.....

Правильно ли я предполагаю, что вы хотите использовать Maven Central для всех зависимостей, кроме тех исключений, которые перечислены в разделе ваших модулей? Если это так, то вам не нужен связанный резольвер. Следующий файл настроек намного проще:

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

Примечание:

  • Я удалил атрибут «usePoms = false» для центрального преобразователя Maven. Вы теряете один из основных преимуществ использования репозитория Maven. Автоматическое извлечение зависимостей вместо того, чтобы перепроектировать чужие сборки :-)
person Mark O'Connor    schedule 24.02.2012
comment
еще один вопрос, который я хотел спросить.....можете ли вы сказать, как мы можем иметь несколько ivy.xml для одного и того же проекта....означает, что я хотел разные ivy.xml для своих разных сервисов..означает, если бы я хотел только зависимости от гибернации чтобы получить инъекцию, следует загрузить только мой ivy.xml, содержащий зависимости спящего режима .... можете ли вы объяснить мне пример ..... - person Bauddhik; 26.02.2012
comment
@user1230077 user1230077 Похоже, задача решена с помощью конфигураций плюща. Опубликуйте новый вопрос с примером проблемы. - person Mark O'Connor; 26.02.2012
comment
У меня есть 5 модулей 1- Модуль 1-ivy.xml 2- Модуль 2-ivy.xml 3- Модуль 3-ivy.xml Как этот отдельный ivy.xml для каждого модуля. У меня нет примера кода. - person Bauddhik; 27.02.2012
comment
Звучит как многомодульная сборка. См. эту публикацию: stackoverflow.com/questions/4106143/ - person Mark O'Connor; 28.02.2012