ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dima, Alina" <alina.d...@immobilienscout24.de>
Subject AW: Ivy cache TTL not working
Date Tue, 16 Jun 2009 14:24:50 GMT
Thanks, I am going to have a look. I am using "latest.integration" for most of my external
libs.

Btw, what happens when you have the artefacts in the cache, and the LAN plugged? Could you
please paste that log too? Do the resolve messages change at all? And normally also, the resolve
should work faster offline, right?

Thanks again
Alina 

-----Ursprüngliche Nachricht-----
Von: joshua.tharp@gmail.com [mailto:joshua.tharp@gmail.com] Im Auftrag von Joshua Tharp
Gesendet: Dienstag, 16. Juni 2009 16:08
An: ivy-user@ant.apache.org
Betreff: Re: Ivy cache TTL not working

I'll give you what I've got... Like I said, however, if I introduce revision
patterns (like 1.0.+) then Ivy seems to resolve every time.

Hope this helps,

Josh

The cache and resolver sections of my ivysettings file
==========================================================
  <caches>
    <cache
        name="shares-cache"
        basedir="${ivy.default.ivy.user.dir}/cache-shares"
        defaultTTL="1d">
      <ttl
          organisation="com.myorg"
          duration="0d 1h" />
    </cache>
  </caches>

  <resolvers>
    <filesystem
        name="local"
        checkmodified="true"
        changingMatcher="regexp"
        changingPattern=".*_SNAPSHOT">
      <ivy pattern="${ivy.local.default.root}/${repo.ivy.pat}" />
      <artifact pattern="${ivy.local.default.root}/${repo.artifact.pat}" />
    </filesystem>

    <url
        name="shared"
        cache="shares-cache">
      <ivy pattern="${repo.root}/${repo.ivy.pat}" />
      <artifact pattern="${repo.root}/${repo.artifact.pat}" />
    </url>

    <packager
        name="public"
        cache="shares-cache"
        buildRoot="${ivy.default.ivy.user.dir}/packager/build"
        resourceCache="${ivy.default.ivy.user.dir}/packager/cache">
      <ivy pattern="${repo.root}/${repo.ivy.pat}" />
      <artifact pattern="${repo.root}/${repo.packager.pat}" />
    </packager>
  </resolvers>

  <!-- <include url="${ivy.default.settings.dir}/ivysettings-public.xml" />
-->
  <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml" />
  <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"
/>

The dependencies in one of my ivy.xml files
=========================================================
  <!-- Build dependencies -->
  <dependency
      org="javax.javaee"
      name="javaee-api"
      rev="5.0"
      conf="build->default" />
  <dependency
      org="org.apache.commons"
      name="commons-logging"
      rev="1.1.1"
      conf="build->default" />

  <!-- Deploy dependencies -->

  <!-- Test dependencies -->
  <dependency
      org="org.junit"
      name="junit"
      rev="4.5"
      conf="test->default" />

  <!-- Tool dependencies -->
  <dependency
      org="com.puppycrawl"
      name="checkstyle"
      rev="5.0"
      conf="checkstyle->default" />

The applicable sections of my build file
========================================================
  <macrodef name="ivysetup">
    <sequential>
      <property
          name="my.ivy.settings.file"
          location="${user.home}/.ant/ivysettings.xml" />

      <ivy:settings
          file="${my.ivy.settings.file}"
          id="ivy.instance" />

      <ivy:info />
    </sequential>
  </macrodef>

<target
    name="dependencies"
    depends="validate,
             dependencies:ivyboot,
             dependencies:module,
             dependencies:resolve,
             dependencies:retrieve"
    description="Uses the dependency manager for acquiring the dependencies"
/>

<target name="dependencies:ivyboot">
  <ivysetup />
</target>

<target name="dependencies:module">
  <property
      name="package.name"
      value="${ivy.module}" />
</target>

<target
    name="dependencies:resolve"
    unless="no.ivy.resolve">
  <ivy:resolve conf="*, !ant" />
</target>

<target
    name="dependencies:retrieve"
    unless="no.ivy.resolve">
  <property
      name="ivylib.pattern"
      value="${lib.d}/[conf]/[artifact](-[classifier]).[ext]" />

  <ivy:retrieve
      pattern="${ivylib.pattern}"
      sync="true" />
</target>


First run in my module's build
========================================================
dependencies:resolve:
[ivy:resolve] :: resolving dependencies :: com.myorg#my-module;working@Hawk
[ivy:resolve]   confs: [build, default, test, checkstyle]
[ivy:resolve]   found javax.javaee#javaee-api;5.0 in shared
[ivy:resolve]   found org.apache.commons#commons-logging;1.1.1 in shared
[ivy:resolve]   found org.junit#junit;4.5 in shared
[ivy:resolve]   found com.puppycrawl#checkstyle;5.0 in shared
[ivy:resolve] downloading
http://myreposerver/repository/modules/javax.javaee/javaee-api/5.0/jars/javaee-api-5.0.jar...
[ivy:resolve] ........................................................
(610kB)
[ivy:resolve]   [SUCCESSFUL ] javax.javaee#javaee-api;5.0!javaee-api.jar
(16ms)
[ivy:resolve] downloading
http://myreposerver/repository/modules/org.apache.commons/commons-logging/1.1.1/jars/commons-logging-1.1.1.jar...
[ivy:resolve] ...... (59kB)
[ivy:resolve]   [SUCCESSFUL ]
org.apache.commons#commons-logging;1.1.1!commons-logging.jar (0ms)
[ivy:resolve] downloading
http://myreposerver/repository/modules/org.apache.commons/commons-logging/1.1.1/javadocs/commons-logging-javadoc-1.1.1.zip...
[ivy:resolve] ......... (138kB)
[ivy:resolve]   [SUCCESSFUL ]
org.apache.commons#commons-logging;1.1.1!commons-logging-javadoc.zip(javadoc)
(16ms)
[ivy:resolve] downloading
http://myreposerver/repository/modules/org.apache.commons/commons-logging/1.1.1/sources/commons-logging-source-1.1.1.zip...
[ivy:resolve] .... (73kB)
[ivy:resolve]   [SUCCESSFUL ]
org.apache.commons#commons-logging;1.1.1!commons-logging-source.zip(source)
(15ms)
[ivy:resolve] downloading
http://myreposerver/repository/modules/org.junit/junit/4.5/jars/junit-4.5.jar...
[ivy:resolve] .............. (194kB)
[ivy:resolve]   [SUCCESSFUL ] org.junit#junit;4.5!junit.jar (47ms)
[ivy:resolve] downloading
http://myreposerver/repository/modules/com.puppycrawl/checkstyle/5.0/jars/checkstyle-5.0.jar...
[ivy:resolve]
...........................................................................................................................................................
(1780kB)
[ivy:resolve]   [SUCCESSFUL ] com.puppycrawl#checkstyle;5.0!checkstyle.jar
(47ms)
[ivy:resolve] :: resolution report :: resolve 297ms :: artifacts dl 187ms

---------------------------------------------------------------------
        |                  |            modules            ||   artifacts
|
        |       conf       | number| search|dwnlded|evicted||
number|dwnlded|

---------------------------------------------------------------------
        |       build      |   2   |   2   |   2   |   0   ||   4   |   4
|
        |      default     |   0   |   0   |   0   |   0   ||   0   |   0
|
        |       test       |   1   |   1   |   1   |   0   ||   1   |   1
|
        |    checkstyle    |   1   |   1   |   1   |   0   ||   1   |   1
|

---------------------------------------------------------------------

dependencies:retrieve:
[ivy:retrieve] :: retrieving :: com.myorg#my-module [sync]
[ivy:retrieve]  confs: [build, default, test, checkstyle]
[ivy:retrieve]  6 artifacts copied, 0 already retrieved (2856kB/31ms)

Second run (LAN unplugged)
==========================================================
dependencies:resolve:
[ivy:resolve] :: resolving dependencies :: com.myorg#my-module;working@Hawk
[ivy:resolve]   confs: [build, default, test, checkstyle]
[ivy:resolve]   found javax.javaee#javaee-api;5.0 in shared
[ivy:resolve]   found org.apache.commons#commons-logging;1.1.1 in shared
[ivy:resolve]   found org.junit#junit;4.5 in shared
[ivy:resolve]   found com.puppycrawl#checkstyle;5.0 in shared
[ivy:resolve] :: resolution report :: resolve 78ms :: artifacts dl 15ms

---------------------------------------------------------------------
        |                  |            modules            ||   artifacts
|
        |       conf       | number| search|dwnlded|evicted||
number|dwnlded|

---------------------------------------------------------------------
        |       build      |   2   |   0   |   0   |   0   ||   4   |   0
|
        |      default     |   0   |   0   |   0   |   0   ||   0   |   0
|
        |       test       |   1   |   0   |   0   |   0   ||   1   |   0
|
        |    checkstyle    |   1   |   0   |   0   |   0   ||   1   |   0
|

---------------------------------------------------------------------

dependencies:retrieve:
[ivy:retrieve] :: retrieving :: com.myorg#my-module [sync]
[ivy:retrieve]  confs: [build, default, test, checkstyle]
[ivy:retrieve]  0 artifacts copied, 6 already retrieved (0kB/32ms)




On Tue, Jun 16, 2009 at 6:24 AM, Dima, Alina <
alina.dima@immobilienscout24.de> wrote:

> Has anyone actually tested this TTL attribute? I have been trying it around
> all day with no results. I just cannot make it work, and additionally, I
> have noticed that although I set the ivy.cache.ttl.default to different
> values for different caches, the value printed in the resolve logs is always
> 10s...I keep getting messages:" Override ignored for property
> "ivy.cache.ttl.default"". I would really appreciate it if someone who has
> worked with this attribute and has an example of how the resolution log
> looks like when this attribute is used successfully could help me out :)
>
> What I am trying to do is avoid "work offline" for a given set of libraries
> for a particular amount of time, that is avoid the whole search in the
> repositories... anyone know maybe of another way to achieve this?
>
> Thanks
> Alina
>
> -----Ursprüngliche Nachricht-----
> Von: Dima, Alina [mailto:alina.dima@immobilienscout24.de]
> Gesendet: Dienstag, 16. Juni 2009 09:04
> An: ivy-user@ant.apache.org
> Betreff: AW: Ivy cache TTL not working
>
> Hi,
>
> Yes, my resolver points to this extern cache. This ist he resolver I use:
>
> <chain name="is24-extern-resolver" returnFirst="true">
>
>  <filesystem name="extern-localfs" cache="extern">
>    <ivy
> pattern="${local.extern.repository.dir}/[organisation]/[module]/ivy-[revision].xml"
> />
>    <artifact
> pattern="${local.extern.repository.dir}/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]"
> />
>
> </filesystem>
>
> <filesystem name="extern-cached-libraries" cache="extern" local="false">
>  <ivy
> pattern="${extern.repository.dir}/[organisation]/[module]/ivy-[revision].xml"
> />
>  <artefact
> pattern="${extern.repository.dir}/[organisation]/[module]/[type]s/[artifact-[revision].[ext]"
> />
> </filesystem>
>
> </chain>
>
> However, Ivy seems to not find the items in the cache and keep searching
> the repositories. I have no idea what the problem is. My resolver runs in
> normal resolve mode, not in refresh.
>
> Thanks
> Alina
>
> -----Ursprüngliche Nachricht-----
> Von: joshua.tharp@gmail.com [mailto:joshua.tharp@gmail.com] Im Auftrag von
> Joshua Tharp
> Gesendet: Montag, 15. Juni 2009 19:10
> An: ivy-user@ant.apache.org
> Betreff: Re: Ivy cache TTL not working
>
> The URL is
> http://ant.apache.org/ivy/history/2.1.0-rc1/settings/caches/ttl.html<
> http://ant.apache.org/ivy/history/2.1.0-rc1/settings/caches/ttl.htmlparticularly
> >and
> I think Archie meant to say in "refresh" mode. Although, the
> documentation says the refresh mode defaults to false, so unless you've set
> it to true, that shouldn't be the issue.
>
> Does your resolver in your ivysettings file point to the extern cache?
>
> On Mon, Jun 15, 2009 at 9:03 AM, Archie Cobbs <archie.cobbs@gmail.com
> >wrote:
>
> > See
> >
> http://ant.apache.org/ivy/history/2.1.0-rc1/settings/caches/ttl.htmlparticularly
> > the reference to "resolve mode". I would guess resolve operates
> > in "resolve mode".
> >
> > -Archie
> >
> > On Mon, Jun 15, 2009 at 8:26 AM, Dima, Alina <
> > alina.dima@immobilienscout24.de> wrote:
> >
> > > Hi,
> > >
> > >
> > >
> > > I am trying to use the TTL attribute on my cache for all external
> > > libraries. I want ivy to not check the central extern repository for
> > > those libraries, not to even search for them in there, and just use the
> > > versions in the cache. My cache setting is:
> > >
> > >
> > >
> > > <cache name="extern" basedir="${ivy.cache.extern.dir}">
> > >
> > >  <ttl duration="4d"/>
> > >
> > > </cache>
> > >
> > >
> > >
> > > When I create the resolver used for external libs, I use the cache
> > > extern.
> > >
> > >
> > >
> > > However, the resolve outputs:
> > >
> > >
> > >
> > > [ivy:resolve] is24-extern-resolver: Checking cache for: dependency:
> > > apache#commons-configuration;latest.integration
> > > {terms=[ConfigurationFactory]}
> > >
> > > [ivy:resolve] no cached resolved revision for
> > > apache#commons-configuration;latest.integration
> > >
> > > [ivy:resolve] no cached resolved revision for
> > > apache#commons-configuration;latest.integration
> > >
> > >
> > >
> > > And then
> > >
> > >
> > >
> > > [ivy:resolve]       found apache#commons-configuration;1.1 in
> > > extern-cached-libraries
> > >
> > > [ivy:resolve]       [1.1]
> > > apache#commons-configuration;latest.integration
> > >
> > >
> > >
> > > The extern-cached-libraries is my external rep.
> > >
> > >
> > >
> > > Why does ivy still search for this lib with every resolve if TTL is set
> > > to 4days. Is there something I am missing?
> > >
> > >
> > >
> > > Thanks a lot
> > >
> > > Alina
> > >
> > >
> >
> >
> > --
> > Archie L. Cobbs
> >
>

Mime
View raw message