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 Robert Macaulay <ro...@gmail.com> on 2007/04/09 04:54:19 UTC

Main ivy.xml files seems to be ignored for back revs?

This is for ivy version Ivy 1.5.0-incubating-dev-20070308022022 - 20070308022022

In my main ivy.xml for my project, I have this dependency.
<dependency org="extern" name="mail" rev="1.3.2"/>
<dependency org="extern" name="xfire" rev="1.2.4"/>

Xfire's ivy in turn has this dependency.
        <dependency org="extern" name="mail" rev="[1.4,)"/>

I have both version 1.3.2 and 1.4.0 of mail.jar in the repository. I
fully expected an error, but the hehavior that I get is this.
[ivy-retrieve] using 3textern-repository to resolve [ extern | mail | [1.4,) ]
[ivy-retrieve] trying Y:\3t_extern/Server/ivy-repo/extern/mail/[1.4,)/ivy.xml
[ivy-retrieve] listing all in
Y:\3t_extern/Server/ivy-repo/extern/mail/[revision]/ivy.xml
[ivy-retrieve] using 3textern-repository to list all in
Y:/3t_extern/Server/ivy-repo/extern/mail/
[ivy-retrieve] found 2 resources
[ivy-retrieve] found revs: [1.3.2, 1.4]
[ivy-retrieve] 3textern-repository: rejected by version matcher:
Y:\3t_extern\Server\ivy-repo\extern\mail\1.3.2\ivy.xml (1.3.2)

[ivy-retrieve] 3textern-repository: found md file for [ extern | mail | [1.4,) ]
[ivy-retrieve] => Y:\3t_extern\Server\ivy-repo\extern\mail\1.4\ivy.xml (1.4)
[ivy-retrieve] parser = ivy parser
[ivy-retrieve] no ivy file in cache for [ extern | mail | 1.4 ]: tried
c:\build\ivyCache\extern\mail\ivy-1.4.xml

[ivy-retrieve] 3textern-repository: downloading
Y:\3t_extern\Server\ivy-repo\extern\mail\1.4\ivy.xml to
C:\DOCUME~1\macaulro\LOCALS~1\Temp\ivy8553xml

[ivy-retrieve] 3textern-repository: downloading
Y:\3t_extern\Server\ivy-repo\extern\mail\1.4\ivy.xml
[ivy-retrieve] to C:\DOCUME~1\macaulro\LOCALS~1\Temp\ivy8553xml
Resource org/apache/ivy/plugins/parser/xml/ivy.xsd loaded from ant loader
[ivy-retrieve] pre 1.3 ivy file: using exactOrRegexp as default matcher
[ivy-retrieve] 3textern-repository: parsed downloaded md file for [
extern | mail | [1.4,) ] parsed=[ extern | mail | 1.4 ]

[ivy-retrieve] [1.4] [ extern | mail ]
[ivy-retrieve] found [ extern | mail | 1.4 ] in 3textern-repository
[ivy-retrieve] [1.4] [ extern | mail | [1.4,) ]

What I would like to happen is a conflict warning to occur stating
that the main project required 1.3.2, but other modules require
up-revved version so that we are aware of accidental upgrades and can
know of them. What config am I missing? I have this in the ivyconf
(nothing special in terms of overrides)

        <conf defaultCache="${build.dir}/ivyCache"
defaultResolver="3textern-repository"
defaultConflictManager="strict"/>

                <resolvers>
                <filesystem name="3textern-repository">
                        <ivy
pattern="${env.EXTERN_VOB_BASE}/Server/ivy-repo/[organisation]/[module]/[revision]/ivy.xml"/>

                        <artifact
pattern="${env.EXTERN_VOB_BASE}/Server/ivy-repo/[organisation]/[module]/[revision]/[type]/[artifact].[ext]"/>

                </filesystem>
        </resolvers>

Thanks.

Re: Main ivy.xml files seems to be ignored for back revs?

Posted by Xavier Hanin <xa...@gmail.com>.
Hi Robert,

The behavior you see is what you could expect without the strict conflict
manager. So it seems that the strict conflict manager defined as default
conflict manager is not properly used. In your debug log, Ivy dumps the
settings loaded, so you can check that you actually have the strict conflict
manager as default conflict manager. If it is the case, make sure that you
don't define any per module conflict manager in your ivy files. You can also
enable conflict management debug log by setting
"ivy.log.conflict.resolution= true" in your ant properties. If you
still do not see where the problem
comes from, post again with more the details you get from the conflict
management debug log, and we'll see if this is a bug.

- Xavier


On 4/9/07, Robert Macaulay <ro...@gmail.com> wrote:
>
> This is for ivy version Ivy 1.5.0-incubating-dev-20070308022022 -
> 20070308022022
>
> In my main ivy.xml for my project, I have this dependency.
> <dependency org="extern" name="mail" rev="1.3.2"/>
> <dependency org="extern" name="xfire" rev="1.2.4"/>
>
> Xfire's ivy in turn has this dependency.
>         <dependency org="extern" name="mail" rev="[1.4,)"/>
>
> I have both version 1.3.2 and 1.4.0 of mail.jar in the repository. I
> fully expected an error, but the hehavior that I get is this.
> [ivy-retrieve] using 3textern-repository to resolve [ extern | mail | [1.4,)
> ]
> [ivy-retrieve] trying Y:\3t_extern/Server/ivy-repo/extern/mail/[1.4
> ,)/ivy.xml
> [ivy-retrieve] listing all in
> Y:\3t_extern/Server/ivy-repo/extern/mail/[revision]/ivy.xml
> [ivy-retrieve] using 3textern-repository to list all in
> Y:/3t_extern/Server/ivy-repo/extern/mail/
> [ivy-retrieve] found 2 resources
> [ivy-retrieve] found revs: [1.3.2, 1.4]
> [ivy-retrieve] 3textern-repository: rejected by version matcher:
> Y:\3t_extern\Server\ivy-repo\extern\mail\1.3.2\ivy.xml (1.3.2)
>
> [ivy-retrieve] 3textern-repository: found md file for [ extern | mail | [
> 1.4,) ]
> [ivy-retrieve] => Y:\3t_extern\Server\ivy-repo\extern\mail\1.4\ivy.xml (
> 1.4)
> [ivy-retrieve] parser = ivy parser
> [ivy-retrieve] no ivy file in cache for [ extern | mail | 1.4 ]: tried
> c:\build\ivyCache\extern\mail\ivy-1.4.xml
>
> [ivy-retrieve] 3textern-repository: downloading
> Y:\3t_extern\Server\ivy-repo\extern\mail\1.4\ivy.xml to
> C:\DOCUME~1\macaulro\LOCALS~1\Temp\ivy8553xml
>
> [ivy-retrieve] 3textern-repository: downloading
> Y:\3t_extern\Server\ivy-repo\extern\mail\1.4\ivy.xml
> [ivy-retrieve] to C:\DOCUME~1\macaulro\LOCALS~1\Temp\ivy8553xml
> Resource org/apache/ivy/plugins/parser/xml/ivy.xsd loaded from ant loader
> [ivy-retrieve] pre 1.3 ivy file: using exactOrRegexp as default matcher
> [ivy-retrieve] 3textern-repository: parsed downloaded md file for [
> extern | mail | [1.4,) ] parsed=[ extern | mail | 1.4 ]
>
> [ivy-retrieve] [1.4] [ extern | mail ]
> [ivy-retrieve] found [ extern | mail | 1.4 ] in 3textern-repository
> [ivy-retrieve] [1.4] [ extern | mail | [1.4,) ]
>
> What I would like to happen is a conflict warning to occur stating
> that the main project required 1.3.2, but other modules require
> up-revved version so that we are aware of accidental upgrades and can
> know of them. What config am I missing? I have this in the ivyconf
> (nothing special in terms of overrides)
>
>         <conf defaultCache="${build.dir}/ivyCache"
> defaultResolver="3textern-repository"
> defaultConflictManager="strict"/>
>
>                 <resolvers>
>                 <filesystem name="3textern-repository">
>                         <ivy
> pattern="${env.EXTERN_VOB_BASE
> }/Server/ivy-repo/[organisation]/[module]/[revision]/ivy.xml"/>
>
>                         <artifact
> pattern="${env.EXTERN_VOB_BASE
> }/Server/ivy-repo/[organisation]/[module]/[revision]/[type]/[artifact].[ext]"/>
>
>                 </filesystem>
>         </resolvers>
>
> Thanks.
>



-- 
Learn Ivy at ApacheCon: http://www.eu.apachecon.com/
Manage your dependencies with Ivy!
http://incubator.apache.org/ivy/