[ 
https://issues.apache.org/jira/browse/IVY-1614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17269261#comment-17269261
 ] 

Björn Kautler commented on IVY-1614:
------------------------------------

Ok, so expanding on Gintas example, just have an {{ivy.xml}} with content
{code:java}
<ivy-module version="2.0">
    <info organisation="foo" module="bar"/>
    <dependencies>
        <dependency org="org.eclipse.emf" name="ecore" 
rev="2.3.0-v200706262000"/>
    </dependencies>
</ivy-module>
{code}
and then use his command
{code:java}
java -jar apache-ivy-2.5.0/ivy-2.5.0.jar -retrieve org.eclipse.emf ecore 
2.3.0-v200706262000 {code}
and you get
{noformat}
                ::::::::::::::::::::::::::::::::::::::::::::::
                ::          UNRESOLVED DEPENDENCIES         ::
                ::::::::::::::::::::::::::::::::::::::::::::::
                :: org.eclipse.emf#common;[2.3.0,3.0.0): not found
                :: org.eclipse.core#resources;[3.3.0,4.0.0): not found
                :::::::::::::::::::::::::::::::::::::::::::::: {noformat}

Or to stay at the orginally reported case, the install task,
- Have this {{build.xml}}:
{code:java}
<project default="install" xmlns:ivy="antlib:org.apache.ivy.ant">
    <target name="check-ivy">
        <available property="ivy.jar.present"
                   file="lib/ivy/ivy-2.5.0.jar"
                   type="file"/>
    </target>

    <target name="download-ivy"
            depends="check-ivy"
            unless="ivy.jar.present">
        <mkdir dir="lib/ivy"/>
        <get 
src="https://repo1.maven.org/maven2/org/apache/ivy/ivy/2.5.0/ivy-2.5.0.jar";
             dest="lib/ivy/ivy-2.5.0.jar"
             usetimestamp="true"/>
    </target>

    <target name="init-ivy"
            depends="download-ivy">
        <property name="ivy.retrieve.pattern"
                  value="lib/[conf]/[artifact](-[classifier]).[ext]"/>
        <taskdef resource="org/apache/ivy/ant/antlib.xml"
                 classpath="lib/ivy/ivy-2.5.0.jar"
                 loaderref="ivy.loader"
                 uri="antlib:org.apache.ivy.ant"/>
    </target>

    <target name="install"
            depends="init-ivy">
        <ivy:install from="public"
                     to="local"
                     organisation="org.eclipse.emf"
                     module="ecore"
                     revision="2.3.0-v200706262000"
                     overwrite="true"/>
    </target>
</project>
{code}
- Run Ant
- Look at the installed ivy file and you will find the Maven syntax range 
instead of the Ivy syntax range ({{grep common 
~/.ivy2/local/org.eclipse.emf/ecore/2.3.0-v200706262000/ivys/ivy.xml}})

> Ivy needs to translate Maven version ranges
> -------------------------------------------
>
>                 Key: IVY-1614
>                 URL: https://issues.apache.org/jira/browse/IVY-1614
>             Project: Ivy
>          Issue Type: Bug
>    Affects Versions: 2.4.0
>            Reporter: Björn Kautler
>            Assignee: Jaikiran Pai
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Syntax for version ranges is differing between Maven and Ivy.
> If a dependency is installed from a Maven repository and installed to an Ivy 
> repository using the install task, the version ranges need to be translated.
> For example if you install from Maven Central to some Ivy repository the 
> library {{org.eclipse.emf:ecore:2.3.0-v200706262000}}, then you end up with 
> this in your Ivy file:
> {code:xml}
> <dependency org="org.eclipse.emf" name="common" rev="[2.3.0,3.0.0)" 
> force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
> {code}
> while in Ivy syntax this should be
> {code:xml}
> <dependency org="org.eclipse.emf" name="common" rev="[2.3.0,3.0.0[" 
> force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to