Apache IVY:链标签

时间:2012-02-24 06:24:44

标签: ivy

我是apache IVY的新手。我无法从默认存储库(MAVEN)下载springframework.web.servlet,因为此jar文件不存在于maven存储库中,因此,为了添加具有此文件的新存储库,我使用了Chain标记。但问题是它从maven repo下载了所有jar文件,从其他存储库下载了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>

的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 个答案:

答案 0 :(得分:3)

我认为您的问题是您的默认解析程序仍然设置为而不是链接 .....

我是否正确地假设您要将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回购的主要好处。自动降低依赖关系,而不必对其他人的构建进行逆向工程: - )