You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by Jean Faure <je...@gmail.com> on 2022/11/30 10:13:13 UTC

How to configure these two repositories at once

Hi, I would like to use the default maven repository with Ivy. I have found
the following settings for this:

    <ivysettings>
        <chain name="default-chain">
          <ibiblio name="maven.org" m2compatible="true"/>
        </chain>
    </ivysettings>

I would also like to use another repository which says that it requires the
following settings:

    <ivysettings>
            <property name="ivy.repo.url" value="http://www.sosy-lab.org/ivy
"/>
            <settings defaultResolver="Sosy-Lab"/>
            <resolvers>
                    <url name="Sosy-Lab" descriptor="required">
                    <ivy
pattern="${ivy.repo.url}/[organisation]/[module]/ivy-[revision].xml"/>
                    <artifact
pattern="${ivy.repo.url}/[organisation]/[module]/[artifact]-[revision](-[classifier]).[ext]"/>
                    </url>
            </resolvers>
    </ivysettings>

Thus, the following `ivy.xml` would work:

    <ivy-module version="2.0">
        <info organisation="org.apache" module="hello-ivy"/>
        <dependencies>
            <dependency org="org.sosy_lab" name="java-smt" rev="3.7.0"/>
            <dependency org="org.springframework" name="spring-core"
rev="3.0.6.RELEASE" >
                <artifact name="spring-core" type="jar" />
            </dependency>
        </dependencies>
    </ivy-module>

However, the definitions for each of the repository look kind-of different
and so I do not know how to merge them into a single settings file. As of
now, the settings for maven above do not even work for `spring-core` in the
example `ivy.xml`.

This does not seem to work:

<ivysettings>
    <property name="sosy-lab.repo.url" value="http://www.sosy-lab.org/ivy"/>
    <property name="maven.repo.url" value="http://maven.org/"/>
    <!--settings defaultResolver="Sosy-Lab"/-->
    <resolvers>
        <url name="Sosy-Lab" descriptor="required">
            <ivy
pattern="${sosy-lab.repo.url}/[organisation]/[module]/ivy-[revision].xml"/>
            <artifact
pattern="${sosy-lab.repo.url}/[organisation]/[module]/[artifact]-[revision](-[classifier]).[ext]"/>
        </url>
        <url name="maven.org" descriptor="required">
            <ivy
pattern="${maven.repo.url}/[organisation]/[module]/ivy-[revision].xml"/>
            <artifact
pattern="${maven.repo.url}/[organisation]/[module]/[artifact]-[revision](-[classifier]).[ext]"/>
        </url>
    </resolvers>
</ivysettings>

How to configure Ivy so that it looks up both repositories?

RE: How to configure these two repositories at once

Posted by DYER Chris <Ch...@sydac.com>.
Hello Jean, 

You might want to check out the tutorial example here
https://ant.apache.org/ivy/history/master/tutorial/multiple.html

To use multiple resolvers I think you will want use the chain resolver type 
https://ant.apache.org/ivy/history/2.1.0/resolver/chain.html
which will contain your 2 url resolvers.

Also set your default resolver to that of the chain

<settings defaultResolver="all-repos"/>

  <resolvers>
 	 <chain name="all-repos">
		<url name="Sosy-Lab" descriptor="required">
	               	<ivy pattern="${ivy.repo.url}/[organisation]/[module]/ivy-[revision].xml"/>
   	  	               <artifact pattern="${ivy.repo.url}/[organisation]/[module]/[artifact]-[revision](-[classifier]).[ext]"/>
	                </url>
      		  <url name="maven.release">
			 <ivy pattern="${public.repositories}/${maven.ivy.pattern.default}" />
			 <artifact pattern="${public.repositories}/${maven.artifact.pattern.default}" />
		  </url>
	 </chain>
  </resolvers>

Good luck,
Chris


-----Original Message-----
From: Jean Faure <je...@gmail.com> 
Sent: Wednesday, 30 November 2022 8:43 PM
To: ivy-user@ant.apache.org
Subject: How to configure these two repositories at once

Hi, I would like to use the default maven repository with Ivy. I have found the following settings for this:

    <ivysettings>
        <chain name="default-chain">
          <ibiblio name="maven.org" m2compatible="true"/>
        </chain>
    </ivysettings>

I would also like to use another repository which says that it requires the following settings:

    <ivysettings>
            <property name="ivy.repo.url" value="http://www.sosy-lab.org/ivy
"/>
            <settings defaultResolver="Sosy-Lab"/>
            <resolvers>
                    <url name="Sosy-Lab" descriptor="required">
                    <ivy
pattern="${ivy.repo.url}/[organisation]/[module]/ivy-[revision].xml"/>
                    <artifact
pattern="${ivy.repo.url}/[organisation]/[module]/[artifact]-[revision](-[classifier]).[ext]"/>
                    </url>
            </resolvers>
    </ivysettings>

Thus, the following `ivy.xml` would work:

    <ivy-module version="2.0">
        <info organisation="org.apache" module="hello-ivy"/>
        <dependencies>
            <dependency org="org.sosy_lab" name="java-smt" rev="3.7.0"/>
            <dependency org="org.springframework" name="spring-core"
rev="3.0.6.RELEASE" >
                <artifact name="spring-core" type="jar" />
            </dependency>
        </dependencies>
    </ivy-module>

However, the definitions for each of the repository look kind-of different and so I do not know how to merge them into a single settings file. As of now, the settings for maven above do not even work for `spring-core` in the example `ivy.xml`.

This does not seem to work:

<ivysettings>
    <property name="sosy-lab.repo.url" value="http://www.sosy-lab.org/ivy"/>
    <property name="maven.repo.url" value="http://maven.org/"/>
    <!--settings defaultResolver="Sosy-Lab"/-->
    <resolvers>
        <url name="Sosy-Lab" descriptor="required">
            <ivy
pattern="${sosy-lab.repo.url}/[organisation]/[module]/ivy-[revision].xml"/>
            <artifact
pattern="${sosy-lab.repo.url}/[organisation]/[module]/[artifact]-[revision](-[classifier]).[ext]"/>
        </url>
        <url name="maven.org" descriptor="required">
            <ivy
pattern="${maven.repo.url}/[organisation]/[module]/ivy-[revision].xml"/>
            <artifact
pattern="${maven.repo.url}/[organisation]/[module]/[artifact]-[revision](-[classifier]).[ext]"/>
        </url>
    </resolvers>
</ivysettings>

How to configure Ivy so that it looks up both repositories?