Hello,

I have a little problem with Ivy for which I have not been able to find a
solution.
it all comes from the fact I can only use java 6 compatible jars, yet some
of the jars down below have different compatibilities.


grizzly 2.3-rc6 (java 6 compatible) depends on javax.servlet-api 3.1-b05
(not java 6 compatible), so I want to use javax.servlet-api 3.1-b02 (java 6
compatible) to circumvent the compatibility issues.
Despite numerous attempts, I have not been able to make this happen.

I have tried to use global excludes, dependency excludes, matcher, version
matchers, but Ivy  always manages to download the wrong version of
javax.servlet-api.


I have used the attached files to reproduce this problem.
Does anybody have an idea on how I can modify the files to make it work the
way I want?


Many thanks,
Jean-Noel
<project name="Test" basedir="." default="resolve"
         xmlns:ivy="antlib:org.apache.ivy.ant">

  <property name="lib.dir"             location="lib"/>
  <property name="ivy.install.version" value="2.3.0"/>
  <property name="ivy.jar.file"        value="${lib.dir}/ivy.jar"/>

  <target name="check-ivy-installed">
    <available file="${ivy.jar.file}" property="ivy-installed"/>
  </target>

  <target name="download-ivy" depends="check-ivy-installed" unless="ivy-installed">
    <mkdir dir="${lib.dir}"/>
    <get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"; dest="${ivy.jar.file}" usetimestamp="true"/>
  </target>

  <target name="install-ivy" depends="download-ivy" description="--> install ivy">
    <path id="ivy.lib.path">
      <fileset dir="${lib.dir}" includes="*.jar"/>
    </path>
    <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
  </target>

  <target name="resolve" depends="install-ivy" description="--> retrieve dependencies with ivy">
    <ivy:retrieve/>
  </target>

  <target name="clean" description="--> clean the lib directory">
    <delete dir="${lib.dir}"/>
  </target>

</project>
<?xml version="1.0"?>
<ivy-module version="2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd";>
  <info organisation="org.test" module="test"/>
  <dependencies>
    <dependency org="javax.servlet"         name="javax.servlet-api"        rev="[3.1-b02]" />
    <dependency org="org.glassfish.grizzly" name="grizzly-http-servlet"     rev="2.3-rc6" />
  </dependencies>
</ivy-module>

<?xml version="1.0" encoding="UTF-8"?>
<ivy-settings>
  <settings defaultResolver="main" />
  <resolvers>
    <chain name="main">
      <ibiblio name="central"   m2compatible="true"/>
    </chain>
  </resolvers>
</ivy-settings>

Reply via email to