ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Glidden, Douglass A" <Douglass.A.Glid...@boeing.com>
Subject RE: dynamic revision and determine the most recent
Date Wed, 21 Oct 2009 13:40:46 GMT
Ivy uses ONLY the revision numbers to compare versions across repositories-it does not use
the "publication date" or any other metadata-it would be essentially meaningless, since there
is no guarantee that any given server or your local computer has a correctly synchronized
system clock.  If an artifact is found with the same revision in two different repositories,
they are assumed to be the same and whatever repository is first in the chain will be used.
 So in your case, Ivy finds that the most recent version in each repository is 1.1.7.1; since
they are the same, it then proceeds to download from the first repository in the chain.  If
two revisions are different they need to have different revision numbers.

Incidentally, the returnFirst property (which is false by default) has no relation to this-setting
returnFirst to true causes Ivy to get the artifact from the first repository in which it finds
a satisfactory version without checking to see if there are more recent versions in other
repositories.

Doug Glidden
Software Engineer
The Boeing Company
Douglass.A.Glidden@boeing.com

-----Original Message-----
From: corwin.yo [mailto:corwin.yo@infonie.fr]
Sent: Wednesday, October 21, 2009 09:18
To: ivy-user@ant.apache.org
Subject: dynamic revision and determine the most recent


Hello,

I have a problem with Ivy to find the most recent artifacts between 2 repositories. I read
this documentation :
http://ant.apache.org/ivy/history/latest-milestone/concept.html#change and the best practices,
but I have this problem yet.

I tried many options (resolveDynamic, force) and this mailing :
http://www.nabble.com/Ivy-resolve-not-getting-latest-td25531231.html
but always without success.

My dependancies get the changing attribute in ivy.xml file.
My convention about latest.integration is like Maven with a SNAPSHOT pattern.
This my ivysettings.xml :

<ivysettings>

        <!--    <property name="ivy.local.default.root"
value="${ivy.default.ivy.user.dir}/local" override="false" />-->
        <!--    <property name="ivy.local.default.ivy.pattern"
value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]"
override="false" />-->
        <!--    <property name="ivy.local.default.artifact.pattern"
value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]"
override="false" />-->

        <credentials host="repo.masternaut.com" realm="Artifactory Realm"
username="cruisecontrol" passwd="Pas7*!" />

        <settings defaultResolver="default" defaultConflictManager="all" />
        <include url="${ivy.default.settings.dir}/ivysettings-local.xml" />
        <resolvers>

                <!--            <filesystem name="local" checkmodified="true"
changingPattern=".*">-->
                <!--                    <ivy
pattern="${ivy.local.default.root}/${ivy.local.default.ivy.pattern}" />-->
                <!--                    <artifact
pattern="${ivy.local.default.root}/${ivy.local.default.artifact.pattern}"
/>-->
                <!--            </filesystem>-->

                <url name="shared" m2compatible="true" checkmodified="true"
changingPattern=".*">
                        <ivy
pattern="http://repo.masternaut.com/intlibs/[organisation]/[module]/[revision]/ivy-[revision].xml"
/>
                        <artifact
pattern="http://repo.masternaut.com/intlibs/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
/>
                </url>
                <url name="masternaut-repository-ext" m2compatible="true">
                        <artifact
pattern="http://repo.masternaut.com/extlibs/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
/>
                </url>
                <ibiblio name="maven-public" m2compatible="true" />
                <chain name="default">
                        <resolver ref="local" />
                        <resolver ref="shared" />
                        <resolver ref="masternaut-repository-ext" />
                </chain>
        </resolvers>

</ivysettings>

Log with IvyIDE (which is more verbose that ant -v):

IVYDE: calling resolve on ivy.xml

:: resolving dependencies :: masternaut#com.masternaut.widgetsgwt;1.3
        confs: [default]
        validate = true
        refresh = false
resolving dependencies for configuration 'default'
== resolving dependencies for masternaut#com.masternaut.widgetsgwt;1.3
[default]
loadData of masternaut#com.masternaut.widgetsgwt;1.3 of rootConf=default == resolving dependencies
for masternaut#com.masternaut.widgetsgwt;1.3
[compile]
loadData of masternaut#com.masternaut.widgetsgwt;1.3 of rootConf=default == resolving dependencies
for masternaut#com.masternaut.widgetsgwt;1.3
[package]
loadData of masternaut#com.masternaut.widgetsgwt;1.3 of rootConf=default == resolving dependencies
masternaut#com.masternaut.widgetsgwt;1.3->masternaut#com.masternaut.commongwt;latest.integration
[compile->dev]
loadData of masternaut#com.masternaut.commongwt;latest.integration of rootConf=default
        using default to resolve
masternaut#com.masternaut.commongwt;latest.integration
default: Checking cache for: dependency:
masternaut#com.masternaut.commongwt;latest.integration {compile=[dev]} don't use cache for
masternaut#com.masternaut.commongwt;latest.integration:
changing=true
don't use cache for masternaut#com.masternaut.commongwt;latest.integration:
changing=true
                tried
/home/jbordeau/.ivy2/local/masternaut/com.masternaut.commongwt/[revision]/ivys/ivy.xml
        listing all in
/home/jbordeau/.ivy2/local/masternaut/com.masternaut.commongwt/[revision]/ivys/ivy.xml
        using local to list all in
/home/jbordeau/.ivy2/local/masternaut/com.masternaut.commongwt/
                found 2 resources
        found revs: [1.1.7, 1.1.7.1]
        local: found md file for
masternaut#com.masternaut.commongwt;latest.integration
                =>
/home/jbordeau/.ivy2/local/masternaut/com.masternaut.commongwt/1.1.7.1/ivys/ivy.xml
(1.1.7.1)
        parser = ivy parser
No entry is found in the ModuleDescriptorCache :
/home/jbordeau/.ivy2/cache/masternaut/com.masternaut.commongwt/ivy-1.1.7.1.xml
post 1.3 ivy file: using exact as default matcher
        found ivy file in cache for masternaut#com.masternaut.commongwt;1.1.7.1
(resolved by local):
/home/jbordeau/.ivy2/cache/masternaut/com.masternaut.commongwt/ivy-1.1.7.1.xml
        default-cache: revision in cache (not updated):
masternaut#com.masternaut.commongwt;1.1.7.1
        checking masternaut#com.masternaut.commongwt;1.1.7.1 from local against [none]
        module revision kept as first found:
masternaut#com.masternaut.commongwt;1.1.7.1 from local don't use cache for masternaut#com.masternaut.commongwt;latest.integration:
checkModified=true
                tried
http://repo.masternaut.com/intlibs/masternaut/com.masternaut.commongwt/[revision]/ivy-[revision].xml
        listing all in
http://repo.masternaut.com/intlibs/masternaut/com.masternaut.commongwt/[revision]/ivy-[revision].xml
        using shared to list all in
http://repo.masternaut.com/intlibs/masternaut/com.masternaut.commongwt/
ApacheURLLister found
URL=[http://repo.masternaut.com/intlibs/masternaut/com.masternaut.commongwt/1.1.7/].
ApacheURLLister found
URL=[http://repo.masternaut.com/intlibs/masternaut/com.masternaut.commongwt/1.1.7.1/].
                found 2 resources
        found revs: [1.1.7, 1.1.7.1]
        shared: found md file for
masternaut#com.masternaut.commongwt;latest.integration
                =>
http://repo.masternaut.com/intlibs/masternaut/com.masternaut.commongwt/1.1.7.1/ivy-1.1.7.1.xml
(1.1.7.1)
        parser = ivy parser
Entry is found in the ModuleDescriptorCache :
/home/jbordeau/.ivy2/cache/masternaut/com.masternaut.commongwt/ivy-1.1.7.1.xml
        found ivy file in cache for masternaut#com.masternaut.commongwt;1.1.7.1
(resolved by local):
/home/jbordeau/.ivy2/cache/masternaut/com.masternaut.commongwt/ivy-1.1.7.1.xml
        default-cache: revision in cache is not up to date:
masternaut#com.masternaut.commongwt;1.1.7.1
downloading
http://repo.masternaut.com/intlibs/masternaut/com.masternaut.commongwt/1.1.7.1/ivy-1.1.7.1.xml
...
        shared: downloading
http://repo.masternaut.com/intlibs/masternaut/com.masternaut.commongwt/1.1.7.1/ivy-1.1.7.1.xml
                to
/home/jbordeau/.ivy2/cache/masternaut/com.masternaut.commongwt/ivy-1.1.7.1.xml.original.part
sha1 file found for
http://repo.masternaut.com/intlibs/masternaut/com.masternaut.commongwt/1.1.7.1/ivy-1.1.7.1.xml:
checking...
        shared: downloading
http://repo.masternaut.com/intlibs/masternaut/com.masternaut.commongwt/1.1.7.1/ivy-1.1.7.1.xml.sha1
                to /tmp/ivytmp9094608955675434442sha1
sha1 OK for
http://repo.masternaut.com/intlibs/masternaut/com.masternaut.commongwt/1.1.7.1/ivy-1.1.7.1.xml
        [SUCCESSFUL ]
masternaut#com.masternaut.commongwt;1.1.7.1!ivy.xml(ivy.original) (78ms) post 1.3 ivy file:
using exact as default matcher
        default-cache: parsed downloaded md file for masternaut#com.masternaut.commongwt;1.1.7.1;
parsed=masternaut#com.masternaut.commongwt;1.1.7.1
masternaut#com.masternaut.commongwt;1.1.7.1 has changed: deleting old artifacts deleting /home/jbordeau/.ivy2/cache/masternaut/com.masternaut.commongwt/jars/com.masternaut.commongwt-1.1.7.1.jar
                [1.1.7.1] masternaut#com.masternaut.commongwt
        checking masternaut#com.masternaut.commongwt;1.1.7.1 from shared against
masternaut#com.masternaut.commongwt;1.1.7.1 from local
        module revision discarded as older:
masternaut#com.masternaut.commongwt;1.1.7.1 from shared don't use cache for masternaut#com.masternaut.commongwt;latest.integration:
changing=true
                tried
http://repo.masternaut.com/extlibs/masternaut/com.masternaut.commongwt/[revision]/com.masternaut.commongwt-[revision].jar
        listing all in
http://repo.masternaut.com/extlibs/masternaut/com.masternaut.commongwt/[revision]/com.masternaut.commongwt-[revision].jar
        using masternaut-repository-ext to list all in http://repo.masternaut.com/extlibs/masternaut/com.masternaut.commongwt/
HTTP response status: 404
url=http://repo.masternaut.com/extlibs/masternaut/com.masternaut.commongwt/
CLIENT ERROR: Not Found
url=http://repo.masternaut.com/extlibs/masternaut/com.masternaut.commongwt/
problem while listing resources in
http://repo.masternaut.com/extlibs/masternaut/com.masternaut.commongwt/ with
masternaut-repository-ext:
  java.io.IOException The HTTP response code for http://repo.masternaut.com/extlibs/masternaut/com.masternaut.commongwt/
did not indicate a success. See log for more detail.
        masternaut-repository-ext: unable to list resources for
masternaut#com.masternaut.commongwt;latest.integration:
pattern=http://repo.masternaut.com/extlibs/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]
        masternaut-repository-ext: no ivy file nor artifact found for masternaut#com.masternaut.commongwt;latest.integration
        found masternaut#com.masternaut.commongwt;1.1.7.1 in local
        [1.1.7.1] masternaut#com.masternaut.commongwt;latest.integration
== resolving dependencies
masternaut#com.masternaut.commongwt;latest.integration->gwt#gwt-servlet;1.5.3
[dev->default]
loadData of gwt#gwt-servlet;1.5.3 of rootConf=default
        using default to resolve gwt#gwt-servlet;1.5.3
default: Checking cache for: dependency: gwt#gwt-servlet;1.5.3 {dev=[default]} No entry is
found in the ModuleDescriptorCache :
/home/jbordeau/.ivy2/cache/gwt/gwt-servlet/ivy-1.5.3.xml
pre 1.3 ivy file: using exactOrRegexp as default matcher
        found ivy file in cache for gwt#gwt-servlet;1.5.3 (resolved by
masternaut-repository-ext):
/home/jbordeau/.ivy2/cache/gwt/gwt-servlet/ivy-1.5.3.xml
default: module revision found in cache: gwt#gwt-servlet;1.5.3
        found gwt#gwt-servlet;1.5.3 in masternaut-repository-ext == resolving dependencies
masternaut#com.masternaut.widgetsgwt;1.3->masternaut#com.masternaut.webraska.mapflyer;1.15.2
[compile->default]
loadData of masternaut#com.masternaut.webraska.mapflyer;1.15.2 of rootConf=default
        using default to resolve masternaut#com.masternaut.webraska.mapflyer;1.15.2
default: Checking cache for: dependency:
masternaut#com.masternaut.webraska.mapflyer;1.15.2 {compile=[default]} No entry is found in
the ModuleDescriptorCache :
/home/jbordeau/.ivy2/cache/masternaut/com.masternaut.webraska.mapflyer/ivy-1.15.2.xml
pre 1.3 ivy file: using exactOrRegexp as default matcher
        found ivy file in cache for
masternaut#com.masternaut.webraska.mapflyer;1.15.2 (resolved by shared):
/home/jbordeau/.ivy2/cache/masternaut/com.masternaut.webraska.mapflyer/ivy-1.15.2.xml
default: module revision found in cache:
masternaut#com.masternaut.webraska.mapflyer;1.15.2
        found masternaut#com.masternaut.webraska.mapflyer;1.15.2 in shared == resolving dependencies
masternaut#com.masternaut.widgetsgwt;1.3->gwt#gwt-dnd;2.5.2
[compile->default]
loadData of gwt#gwt-dnd;2.5.2 of rootConf=default
        using default to resolve gwt#gwt-dnd;2.5.2
default: Checking cache for: dependency: gwt#gwt-dnd;2.5.2 {compile=[default]} No entry is
found in the ModuleDescriptorCache :
/home/jbordeau/.ivy2/cache/gwt/gwt-dnd/ivy-2.5.2.xml
pre 1.3 ivy file: using exactOrRegexp as default matcher
        found ivy file in cache for gwt#gwt-dnd;2.5.2 (resolved by
masternaut-repository-ext):
/home/jbordeau/.ivy2/cache/gwt/gwt-dnd/ivy-2.5.2.xml
default: module revision found in cache: gwt#gwt-dnd;2.5.2
        found gwt#gwt-dnd;2.5.2 in masternaut-repository-ext == resolving dependencies for
masternaut#com.masternaut.widgetsgwt;1.3 [dev] loadData of masternaut#com.masternaut.widgetsgwt;1.3
of rootConf=default Nbr of module to sort : 4 Sort dependencies of : masternaut#com.masternaut.commongwt;1.1.7.1
/ Number of dependencies = 1 Sort dependencies of : gwt#gwt-servlet;1.5.3 / Number of dependencies
= 0 Sort done for : gwt#gwt-servlet;1.5.3 Sort done for : masternaut#com.masternaut.commongwt;1.1.7.1
Sort dependencies of : masternaut#com.masternaut.webraska.mapflyer;1.15.2 / Number of dependencies
= 0 Sort done for : masternaut#com.masternaut.webraska.mapflyer;1.15.2
Sort dependencies of : gwt#gwt-dnd;2.5.2 / Number of dependencies = 0 Sort done for : gwt#gwt-dnd;2.5.2
Module descriptor is processed : gwt#gwt-servlet;1.5.3
        resolved ivy file produced in
/home/jbordeau/.ivy2/cache/resolved-masternaut-com.masternaut.widgetsgwt-1.3.xml
:: downloading artifacts ::
         trying
/home/jbordeau/.ivy2/local/masternaut/com.masternaut.commongwt/1.1.7.1/jars/com.masternaut.commongwt.jar
                tried
/home/jbordeau/.ivy2/local/masternaut/com.masternaut.commongwt/1.1.7.1/jars/com.masternaut.commongwt.jar
downloading
/home/jbordeau/.ivy2/local/masternaut/com.masternaut.commongwt/1.1.7.1/jars/com.masternaut.commongwt.jar
...
        local: downloading
/home/jbordeau/.ivy2/local/masternaut/com.masternaut.commongwt/1.1.7.1/jars/com.masternaut.commongwt.jar
                to
/home/jbordeau/.ivy2/cache/masternaut/com.masternaut.commongwt/jars/com.masternaut.commongwt-1.1.7.1.jar.part
sha1 file found for
/home/jbordeau/.ivy2/local/masternaut/com.masternaut.commongwt/1.1.7.1/jars/com.masternaut.commongwt.jar:
checking...
        local: downloading
/home/jbordeau/.ivy2/local/masternaut/com.masternaut.commongwt/1.1.7.1/jars/com.masternaut.commongwt.jar.sha1
                to /tmp/ivytmp2975758677642137941sha1
sha1 OK for
/home/jbordeau/.ivy2/local/masternaut/com.masternaut.commongwt/1.1.7.1/jars/com.masternaut.commongwt.jar
        [SUCCESSFUL ]
masternaut#com.masternaut.commongwt;1.1.7.1!com.masternaut.commongwt.jar
(14ms)
        [NOT REQUIRED]
masternaut#com.masternaut.webraska.mapflyer;1.15.2!com.masternaut.webraska.mapflyer.jar
        [NOT REQUIRED] gwt#gwt-dnd;2.5.2!gwt-dnd.jar
        [NOT REQUIRED] gwt#gwt-servlet;1.5.3!gwt-servlet.jar
:: resolution report :: resolve 240ms :: artifacts dl 15ms
        ---------------------------------------------------------------------
        |                  |            modules            ||   artifacts   |
        |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
        ---------------------------------------------------------------------
        |      default     |   4   |   1   |   0   |   0   ||   4   |   1   |
        ---------------------------------------------------------------------

In reading the log, if I understand, it determines correctly that the most recent from shared
repository but it downloads from local. However the publication date of shared ivy-1.7.1.1.xml
is most recent that this one of local.

There is wiered something is that if I change the order in my chain (shared before local)
that works (it downloads from shared) and the problem is inversed (it does not take care the
most recent from local). I have done test with returnFirst to false but without success.

Have got any ideas ?
--
View this message in context: http://www.nabble.com/dynamic-revision-and-determine-the-most-recent-tp25992333p25992333.html
Sent from the ivy-user mailing list archive at Nabble.com.


Mime
View raw message