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 Geißler,
Daniel <da...@salt-solutions.de> on 2018/01/31 21:03:02 UTC
ivy cache, changing patterns and time to live
Hi,
we are investigating some serious pain with our build times and identified ivy:resolve as the main time consumer.
While having similar dependency trees in most of the components in the multi module build, all artifacts seem to be searched in the remote repository all the time.
We know that dynamic and SNAPSHOT versions are one reason for that, but still there must be a way to keep the results at least for one build fresh.
This is where we found the defaultTTL or ttl aspects of caches (http://ant.apache.org/ivy/history/latest-milestone/settings/caches/ttl.html).
With some rough testing we figured out that enabling the checkmodified flag on a resolver forces every artifact to be resolved (be it a SNAPSHOT dependency or not, all artifacts are listed as searched by the resolve task).
But when we set checkmodified="false" and a short defaultTTL on the cache, repeated calls will not trigger a search until the time expires.
Here's the resolver configuration for the repository containing SNAPSHOT and released artifacts:
<ibiblio name="all-development" m2compatible="true" latest="my-strategy" useMavenMetadata="false"
root="${ivy.repository.root}/${ivy.repository.name}"
checkmodified="false" changingMatcher="regexp" changingPattern=".*-SNAPSHOT.*" />
and this is how our cache is configured:
<cache name="my-cache" useOrigin="true" basedir="${ivy.cache.repository.dir}"
ivyPattern="${ivy.cache.ivy-pattern}" artifactPattern="${ivy.cache.artifact-pattern}"
lockStrategy="artifact-lock-nio" />
Anyone can give brief explanation when to use what and which sideeffects to expect? The documentation is not exactly clear about how to handle changing artifacts in a effective way.
any help would be appreciated
Daniel Geißler
_____________________________________
SALT Solutions AG
www.salt-solutions.de<http://www.salt-solutions.de>
Vorstand: Dieter Heyde (Vors.), Dr. Bernhard Blüthner, Dr. Hans Christoph Dönges, Claudia Lang, Frank Reinecke
Vorsitzender des Aufsichtsrats: Dr. Michael Fuchs
Sitz: München, AG München, HRB 228545
Re: ivy cache, changing patterns and time to live
Posted by Jaikiran Pai <ja...@gmail.com>.
To be honest, I did not fully understand what the issue/question is. Is
it possible for you to create a simple application which reproduces and
explains what the issue is?
P.S: AFAIK, this mailing list doesn't support attachments, so if you do
have that simple application, you might want it included within the
email as text.
-Jaikiran
On 01/02/18 2:33 AM, Geißler, Daniel wrote:
> Hi,
>
> we are investigating some serious pain with our build times and identified ivy:resolve as the main time consumer.
> While having similar dependency trees in most of the components in the multi module build, all artifacts seem to be searched in the remote repository all the time.
>
> We know that dynamic and SNAPSHOT versions are one reason for that, but still there must be a way to keep the results at least for one build fresh.
> This is where we found the defaultTTL or ttl aspects of caches (http://ant.apache.org/ivy/history/latest-milestone/settings/caches/ttl.html).
>
> With some rough testing we figured out that enabling the checkmodified flag on a resolver forces every artifact to be resolved (be it a SNAPSHOT dependency or not, all artifacts are listed as searched by the resolve task).
> But when we set checkmodified="false" and a short defaultTTL on the cache, repeated calls will not trigger a search until the time expires.
>
> Here's the resolver configuration for the repository containing SNAPSHOT and released artifacts:
>
> <ibiblio name="all-development" m2compatible="true" latest="my-strategy" useMavenMetadata="false"
> root="${ivy.repository.root}/${ivy.repository.name}"
> checkmodified="false" changingMatcher="regexp" changingPattern=".*-SNAPSHOT.*" />
>
>
> and this is how our cache is configured:
>
> <cache name="my-cache" useOrigin="true" basedir="${ivy.cache.repository.dir}"
> ivyPattern="${ivy.cache.ivy-pattern}" artifactPattern="${ivy.cache.artifact-pattern}"
> lockStrategy="artifact-lock-nio" />
>
> Anyone can give brief explanation when to use what and which sideeffects to expect? The documentation is not exactly clear about how to handle changing artifacts in a effective way.
>
> any help would be appreciated
> Daniel Geißler
> _____________________________________
>
> SALT Solutions AG
>
> www.salt-solutions.de<http://www.salt-solutions.de>
>
> Vorstand: Dieter Heyde (Vors.), Dr. Bernhard Blüthner, Dr. Hans Christoph Dönges, Claudia Lang, Frank Reinecke
> Vorsitzender des Aufsichtsrats: Dr. Michael Fuchs
> Sitz: München, AG München, HRB 228545
>