ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Prakash Mukkamala" <>
Subject when multiple projects refer to different versions of dependancy, ivy doesn't resolve correctly...
Date Fri, 01 Dec 2006 14:25:05 GMT
One bug that I found regarding IVY...

I use IVY and really like the product.

I have found one bug in one instance where we have multiple projects....

I have attached the ivy reports...I am thinking that there is a bug in IVY
thats causing IVY to retrieve both the framework versions...Please
Prakash Mukkamala, IBM

We have commons, iar, ipf and Framework projects.

*project commons has a dependency on  Framework 1.30 version, iar and ipf*

      ipf has a dependency on Project Framework 1.31
      iar has a dependency on Project Framework 1.30

What we expected was that framework 1.31 will be used instead of framework
1.30, but we IVY picks both the frameworks project in the ivycache...
please look at the ivy.xmls of all the projects...

*1.commons ivy.xml file:*
<ivy-module version="1.4">
 <info organisation="prminc" module="training-ivy"/>
  <conf name="compile"/>
  <conf name="war"/>
  <conf name="ear"/>
  <artifact name="commons-ejb" type="jar" conf="compile,ear"/>
     <artifact name="commons-web" type="jar" conf="war"/>
     <artifact name="commons-web" type="war" conf="war,ear"/>
 <dependencies defaultconf="compile,ear->default">
   <dependency org="eRA" name="framework" rev="" conf="*->@"/>
<!-- conf="*->@" is equivalent to conf="compile->compile;war->war;ear->ear"
     <dependency org="eRA" name="ipf" rev=" latest.integration"
     <dependency org="eRA" name="iar" rev="latest.integration"
  <dependency org="apache" name="cactus" rev=" 1.3"/>

*1.1 commons build file:*
 <target name="resolve.all"  depends="clean.ivy.cache"
description="retrieve dependencies with ivy">
     <ivy:configure file="${local.conf.dir}/ivyconf.xml"/>
  <ivy:resolve file="ivy.xml" conf="compile,war,ear"/>
     <ivy:cachefileset conf="compile" setid="ivy.compile.fileset"/>
     <ivy:cachefileset conf="war" setid=" ivy.war.fileset.wars" type="war"/>
     <ivy:cachefileset conf="war" setid="ivy.war.fileset.jars" type="jar"/>
     <ivy:cachefileset conf="ear" setid=" ivy.ear.fileset"/>

*2.ipf ivy.xml file:*
<?xml version="1.0"?>
<ivy-module version="1.3" xmlns:xsi="" xsi:noNamespaceSchemaLocation="">
  <info organisation="eRA" module="ipf" revision=" " status="release"
    <conf name="compile"/>
    <conf name="ear"/>
    <artifact name="ipf-ejb" type="jar" conf="*"/>
    <dependency org="eRA" name="framework" rev="1.+" conf="*->@"/>

*3.iar ivy.xml file:*
<?xml version="1.0"?>
<ivy-module version="1.3" xmlns:xsi="" xsi:noNamespaceSchemaLocation="">
  <info organisation="eRA" module="iar" revision=" "
status="release" publication="20061130112906"/>
    <conf name="compile"/>
    <conf name="war"/> <!-- Artifacts to be included in a parent WAR -->
    <conf name="ear"/> <!-- Artifacts to be included in a parent EAR -->
    <artifact name="iar-ejb" type="jar" conf="compile,ear"/>
    <artifact name="iar-web" type="war" conf="ear"/>
  <dependencies defaultconf="*->@"> <!-- conf="*->@" is equivalent to
conf="compile->compile;war->war;ear->ear" -->
    <dependency org="eRA" name="framework" rev="" conf="*->@"/>
    <dependency org="eRA" name="sbc" rev=""
conf="compile,ear->@" transitive="false"> <!-- Do not include transitive
dependencies to avoid a circular dep. problem with PPF -->
      <!-- Include only some of the published SBC artifacts -->
    <artifact name="application-ejb" type="jar" conf="compile,ear"/>
    <artifact name="grantfolder-ejb" type="jar" conf="compile,ear"/>
      <artifact name="sbc-ejb" type="jar" conf="compile,ear"/>
    <dependency org="eRA" name="ipf" rev="" conf="compile,ear->@"/>
    <dependency org="apache" name="poi" rev=" 1.5.1"

*4.framework ivy.xml file:*

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href=""?>
<ivy-module version="1.3" xmlns:xsi=""
  <info organisation="eRA" module="framework" revision=""
status="release" publication="20061110112635"/>
    <conf name="compile"/>
    <conf name="war"/> <!-- Artifacts to be included in a parent WAR -->
    <conf name="ear"/> <!-- Artifacts to be included in a parent EAR -->
    <artifact name="framework-ejb" type="jar" conf="compile,ear"/>
    <artifact name="framework-test" type="jar" conf="compile"/>
    <artifact name="framework-filters" type="jar" conf="compile,war"/>
    <artifact name="framework-web" type="jar" conf="compile,war"/>
    <artifact name="framework-web" type="war" conf="war"/> <!-- Consume it
in an app's WAR but don't include in an app's EAR -->
  <dependencies defaultconf="compile,ear->default">
    <dependency org="apache" name="struts" rev="1.0.2"
    <dependency org="apache" name="log4j" rev="1.2.13"/>
    <dependency org="apache" name="jakarta-regexp" rev="1.4"/>
    <dependency org="apache" name="commons-lang" rev=" 2.1"/>
    <dependency org="apache" name="jakarta-oro" rev="2.0.7"/>
    <!-- dependency org="apache" name="xerces" rev="2.0.+"/ -->
    <dependency org="lowagie" name="iText" rev="1.2"/>
    <dependency org="enterprisedt" name="ftp" rev="2001.10.09"/>
    <dependency org="opensymphony" name="quartz" rev=" 1.4.3"/>
    <dependency org="sun" name="rowset" rev="1.0.1"/>
    <dependency org="sun" name="rowset-old" rev="2000.06.13"/>
    <dependency org="sun" name="jce" rev=" 2002.06.27"/>
    <dependency org="sun" name="jaxb" rev="1.0"/>
    <dependency org="apache" name="cactus" rev="1.7.2"
    <dependency org="apache" name="commons-httpclient" rev="3.0.1"/>
    <dependency org="apache" name="commons-logging" rev="1.0.4"/>
    <dependency org="apache" name="commons-beanutils" rev=" 1.7.0"/>

    <!-- Compile time only: -->
    <dependency org="drools" name="drools" rev="2.0"
conf="compile->default"/> <!-- Framework 1 apps are not expected to use
Drools at runtime (?) -->
    <dependency org="junit" name="junit" rev="3.7" conf="compile->default"/>
    <dependency org="oracle" name="oc4j" rev="10.1.2"
    <dependency org="sun" name="jaxp" rev=""

View raw message