ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Williams <spamhammer1...@gmail.com>
Subject Re: Ivy cache ignoring changingPattern on ibiblio resolver, not picking up latest SNAPSHOT artifact
Date Wed, 28 Sep 2011 21:26:53 GMT
Hi Maarten,

Thanks for the swift reply.

Of all your suggestions, updating the pom.xml is what made it work. It looks
like this issue centers around our maven build not publishing an effective
pom.xml - instead it is publishing the pom.xml file stored in SCM with a
correspondingly old timestamp. However, this is the default behaviour for
Maven since 2.1. It seems like Ivy should ignore the timestamp on the
pom.xml when dealing with a changing pattern on an ibiblio resolver, by
default. There appears to be a workaround by telling our maven build to
publish an effective pom.xml for each SNAPSHOT.

-Jonathan

On Wed, Sep 28, 2011 at 4:16 PM, Maarten Coene <maarten_coene@yahoo.com>wrote:

> I'm not 100% sure and I don't have the time to check now (sorry) but I
> think Ivy will only check if an artifact has changed if the ivy file (or pom
> file in your situation) has changed.
> From the timestamps in your listing it seems that only the jar has been
> updated and that the pom has remained unchanged.
>
> Could you try updating the pom as well to see if this solves your problem?
>
> In addition if I remember correctly, there is a bug in the chain resolver
> in combination with changingPatterns: if you specify a changingPattern on a
> child resolver, you must also specify it on the chain, otherwise Ivy won't
> consider the resolver as changing.
>
> So, a second option to try could be adding the changingPattern attribute to
> your chain resolver.
>
> A third possibility is to add changing="true" to your dependency, something
> like:
>
> <dependency org="com.foo" name="bar" rev="0.0.1-SNAPSHOT" changing="true"/>
>
> Maarten
>
>
>
> ________________________________
> From: Jonathan Williams <spamhammer1234@gmail.com>
> To: ivy-user@ant.apache.org
> Sent: Wednesday, September 28, 2011 9:55 PM
> Subject: Ivy cache ignoring changingPattern on ibiblio resolver, not
> picking up latest SNAPSHOT artifact
>
> Hi,
>
> I'm trying to get Ivy to pick up the latest SNAPSHOT revision of an
> artifact
> from my local Maven repository. I've looked through the documentation and
> numerous examples online and followed the suggestions there, but I haven't
> had any luck so far. Ivy finds and downloads the SNAPSHOT artifact the
> first
> time without any issue and stores it in the cache. However, if that
> SNAPSHOT
> artifact is subsequently updated in my Maven repo, Ivy will not pick up the
> latest artifact. Here are the relevent parts of my ivysettings.xml
>
> <property name="ivy.resolver.default.check.modified" value="true"/>
>
> <resolvers>
>     <chain name="default-chain" returnFirst="true">
>
>             <filesystem name="enterprise" m2compatible="true">
>                 <ivy
> pattern="${enterprise.repo.dir}/[organisation]/[module]/ivy.xml"/>
>                 <artifact
> pattern="${enterprise.repo.dir}/[organisation]/[module]/[artifact].[ext]"/>
>             </filesystem>
>             <url name="shared" m2compatible="true" checksums="">
>                 <ivy
> pattern="${shared.repo.dir}/[organisation]/[module]/[revision]/ivy.xml"/>
>                 <artifact
>
> pattern="${shared.repo.dir}/[organisation]/[module]/[revision]/[artifact]-[revision](-[type]).[ext]"/>
>             </url>
>
>             <ibiblio name="maven-local" m2compatible="true"
> root="${maven.cache.uri}" changingPattern=".*SNAPSHOT"/>
>     </chain>
> </resolvers>
>
> Here are the contents of my local maven repo:
>
> -rw-r--r-- 1 jwilliam xxxxxx 2042390 Sep 28 15:17
>
> ../../../../build/.cache/m2/com/foo/bar/0.0.1-SNAPSHOT/bar-0.0.1-SNAPSHOT.jar
> -rw-r--r-- 1 jwilliam xxxxxx    7817 Sep 23 12:01
>
> ../../../../build/.cache/m2/com/foo/bar/0.0.1-SNAPSHOT/bar-0.0.1-SNAPSHOT.pom
>
> And my ivy cache, notice how the bar-0.0.1-SNAPSHOT artifact is no longer
> up
> to date (both size and timestamp different from the maven repo):
>
> ../../../../build/.cache/global/com.foo/bar:
> total 2028
> drwxr-xr-x  2 jwilliam xxxxxx    4096 Sep 28 14:56 .
> drwxr-xr-x 20 jwilliam xxxxxx    4096 Sep 28 14:57 ..
> -rw-r--r--  1 jwilliam xxxxxx    5925 Sep 23 12:01 ivy-0.0.1-SNAPSHOT.xml
> -rw-r--r--  1 jwilliam xxxxxx    7817 Sep 23 12:01
> ivy-0.0.1-SNAPSHOT.xml.original
> -rw-r--r--  1 jwilliam xxxxxx     931 Sep 28 15:19
> ivydata-0.0.1-SNAPSHOT.properties
> -rw-r--r--  1 jwilliam xxxxxx 2042413 Sep 28 14:56
> bar-0.0.1-SNAPSHOT-jar.jar
>
> My dependency on com.foo:bar is declared as such:
>
>         <dependency org="com.foo" name="bar" rev="0.0.1-SNAPSHOT"/>
>
>
> Some of the things I've tried are tweaking the pattern I'm using in
> changingPattern, explicitly setting the
>
> 'pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"'
> and 'checkmodified="true"' fields. Nothing seems to work, short of deleting
> my Ivy cache and forcing a re-download of the artifact.
>
> Any ideas on what I'm doing that is different from all the examples I've
> looked at that ostensibly work?
>
> -Jonathan
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message