You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "Jacob Aleksynas (JIRA)" <ji...@apache.org> on 2012/08/14 22:51:38 UTC

[jira] [Comment Edited] (IVY-1176) Problem with resolve (ivy.deps.changed) and timestamp of ivy.xml of dependencies

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

Jacob Aleksynas edited comment on IVY-1176 at 8/15/12 7:51 AM:
---------------------------------------------------------------

I will consistently get ivy.deps.changed=true despite certainty that the deps have not changed, I am not sure how this flag relates to the various caches (if I remove the copy in the forced local repo wihtout clearing the cache, the resolve output still shows resolving from that repository).  

I am not using "SNAPSHOT" version, but I do often overwrite artifacts. I'm trying to build a more incremental system and this flag is the key to success, perhaps clarifying the documentation around this flag and what affects it, can help some of us understand what is going on. 

By adding some debugging to the checkChanged method, I find that the parsing of the previous resolve file from the resolution-cache is compared to the current dependencies.  The parsing of the previous resolve just lists the DIRECT dependencies of the module; where are the list that is compared is the fully transitive resolution of the module. below is the results of said logging.

[ivy:resolve] STARTING previous report parsing: C:\svn\trunk\build\target\ivy\resolution-cache\myorg-mymoduleC-runtime.xml
[ivy:resolve] parser added: apache#commons-logging;1.1.1
[ivy:resolve] parser added: apache#commons-collections;3.2.1
[ivy:resolve] parser added: apache#log4j;1.2.8
[ivy:resolve] parser added: myorg#mymoduleA;0.0.462820
[ivy:resolve] parser added: myorg#mymoduleB;0.0.498568
[ivy:resolve] current added: myorg#mymoduleB;0.0.498568
[ivy:resolve] current added: jdom#jdom;1.1
[ivy:resolve] current added: apache#axis2-runtime;1.4.1.1
[ivy:resolve] current added: sun#activation;1.1
[ivy:resolve] current added: apache#axiom-api;1.2.7
[ivy:resolve] current added: apache#axiom-impl;1.2.7
[ivy:resolve] current added: apache#axis2-adb;1.4.1
[ivy:resolve] current added: apache#axis2-kernel;1.4.1.1
[ivy:resolve] current added: emory#backport-util-concurrent;3.1
[ivy:resolve] current added: apache#commons-codec;1.3
[ivy:resolve] current added: apache#commons-fileupload;1.2
[ivy:resolve] current added: apache#commons-httpclient;3.1
[ivy:resolve] current added: apache#geronimo-stax-api;1.0.1
[ivy:resolve] current added: apache#neethi;2.0.4
[ivy:resolve] current added: apache#woden-api;1.0M8
[ivy:resolve] current added: apache#wstx-asl;3.2.4
[ivy:resolve] current added: apache#xercesImpl;2.8.1
[ivy:resolve] current added: apache#xml-apis;1.3.04
[ivy:resolve] current added: apache#xmlschema;1.4.2
[ivy:resolve] current added: apache#wsdl4j;1.6.2
[ivy:resolve] current added: java#jaxrpc;1.1
[ivy:resolve] current added: springframework#spring;2.5.5
[ivy:resolve] current added: myorg#myutilities;0.0.510650
[ivy:resolve] current added: apache#commons-pool;1.2
[ivy:resolve] current skipped: apache#commons-collections;2.1
[ivy:resolve] current added: apache#commons-collections;3.2.1
[ivy:resolve] current added: myorg#mymoduleA;0.0.462820
[ivy:resolve] current added: apache#axiom-dom;1.2.7
[ivy:resolve] current skipped: apache#axis2-kernel;1.4.1
[ivy:resolve] current added: apache#log4j;1.2.8
[ivy:resolve] current added: apache#commons-logging;1.1.1
[ivy:resolve] previousDepSet: [apache#commons-collections;3.2.1, myorg#mymoduleA;0.0.462820, apache#commons-logging;1.1.1, myorg#mymoduleB;0.0.498568, apache#log4j;1.2.8]
[ivy:resolve] currentDepSet: [myorg#mymoduleB;0.0.498568, jdom#jdom;1.1, apache#axis2-runtime;1.4.1.1, sun#activation;1.1, apache#axiom-api;1.2.7, apache#axiom-impl;1.2.7, apache#axis2-adb;1.4.1, apache#axis2-kernel;1.4.1.1, emory#backport-util-concurrent;3.1, apache#commons-codec;1.3, apache#commons-fileupload;1.2, apache#commons-httpclient;3.1, apache#geronimo-stax-api;1.0.1, apache#neethi;2.0.4, apache#woden-api;1.0M8, apache#wstx-asl;3.2.4, apache#xercesImpl;2.8.1, apache#xml-apis;1.3.04, apache#xmlschema;1.4.2, apache#wsdl4j;1.6.2, java#jaxrpc;1.1, springframework#spring;2.5.5, myorg#myutilities;0.0.510650, apache#commons-pool;1.2, apache#commons-collections;3.2.1, myorg#mymoduleA;0.0.462820, apache#axiom-dom;1.2.7, apache#log4j;1.2.8, apache#commons-logging;1.1.1]

                
      was (Author: jaleksynas):
    I will consistently get ivy.deps.changed=true despite certainty that the deps have not changed, I am not sure how this flag relates to the various caches (if I remove the copy in the forced local repo wihtout clearing the cache, the resolve output still shows resolving from that repository).  

I am not using "SNAPSHOT" version, but I do often overwrite artifacts. I'm trying to build a more incremental system and this flag is the key to success, perhaps clarifying the documentation around this flag and what affects it, can help some of us understand what is going on. 

I can produce some interesting combinations using various resolver or ivy:resolve options -- but it never seems to be the expected values. not sure what else I can tune.
                  
> Problem with resolve (ivy.deps.changed) and timestamp of ivy.xml of dependencies
> --------------------------------------------------------------------------------
>
>                 Key: IVY-1176
>                 URL: https://issues.apache.org/jira/browse/IVY-1176
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>            Reporter: subes
>            Priority: Blocker
>
> Hi,
> I am having the same Issue as Jan Vissers on the mailing list:
> http://mail-archives.apache.org/mod_mbox/ant-ivy-user/200803.mbox/%3C10985.145.53.56.90.1204817182.squirrel@webmail.xs4all.nl%3E
> http://mail-archives.apache.org/mod_mbox/ant-ivy-user/200803.mbox/%3C47D11E2A.1050704@cumquat.nl%3E
> The problem is, ivy.deps.changed does not get set to true if the timestamp of the dependencies ivy.xml got updated.
> The call to resolve actually tells me that the new files got downloaded (because of the updated timestamp), but ivy.deps.changed tells me that the artifacts did not change.
> [ivy:resolve] 	---------------------------------------------------------------------
> [ivy:resolve] 	|                  |            modules            ||   artifacts   |
> [ivy:resolve] 	|       conf       | number| search|dwnlded|evicted|| number|dwnlded|
> [ivy:resolve] 	---------------------------------------------------------------------
> [ivy:resolve] 	|      default     |   26  |   1   |   1   |   0   ||   26  |   1   |
> [ivy:resolve] 	|       tests      |   3   |   1   |   1   |   0   ||   3   |   1   |
> [ivy:resolve] 	|      sources     |   10  |   1   |   1   |   0   ||   10  |   1   |
> [ivy:resolve] 	---------------------------------------------------------------------
> --> ivy.deps.changed is "false"
> This behaviour makes ivy.deps.changed mostly useless for me to implement a lazy build mechanism in a multi module project.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira