ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Voliva" <rvol...@gatessolutions.com>
Subject RE: When I update an ivy file in my repository ivy uses the version from cache.
Date Tue, 13 May 2008 19:42:41 GMT
We ran into similar issues on our dependent projects that change often.
What we did was in the dependency itself in the ivy file.  We added
changing="true" to the dependency like this:

<dependency name="project_that_changes_alot" rev="latest.integration"
conf="compile->compile" changing="true" />

For the dependencies that don't change that often, we weren't able to
come up with a good way to tell Ivy how to know when something has
changed.  We tried using "changingPattern" and "changingMatcher" on our
resolvers to no avail, but maybe we weren't doing it correctly.

So, I probably didn't help you much here - but hopefully someone more
versed in Ivy than you and I can give us a good solution.

-----Original Message-----
From: Saksa, Steven (NIH/NCI) [C] [mailto:saksass@mail.nih.gov] 
Sent: Tuesday, May 13, 2008 1:49 PM
To: ivy-user@ant.apache.org
Subject: When I update an ivy file in my repository ivy uses the version
from cache.

To whom it may concern,
  I am fairly new to IVY also I am a System Administrator not a
developer.  Any way we setup a repository and were constantly editing
IVY configs and thus  had some issues with cache not getting updated.
To work around the issue so we were just cleaning the cache with every
build to ensure that we got what we wanted.  Anyway the repository is
fairly stable now and I have time to look into the cache issues.  I have
included most of my configurations and observations below.  Here is the
general flow.
 
  * Using Ivy 2.0.0-beta2
  * Update ivy.xml file to include new dependency 
  * Generate new .md5 and .sha1 files
  * Commit the file  (resolved via url from svn)
  * Run ant target to retreive the files
  * Resolve does not download the new depenency
  * Check of cache directory shows that the bda-utils ivy.xml file is
not updated
  * After much research added ivy.resolver.default.check.modified
property to try and circumvent cache
  * This resulted in not using the file from the site just using version
from cache again
 
Anyone have any ideas?
     Thanks, Steve Saksa
 
 
ANT LOG
[ssaksa@ssaksa-fc8 bda]$ ant -f test-bda-utils.xml
test:compare-properties
Buildfile: test-bda-utils.xml
retrieve-bda:
      [get] Getting:
http://gforge.nci.nih.gov/svnroot/commonlibrary/trunk/ivy-repo/apache/iv
y/2.0.0-beta2/ivy-2.0.0-beta2.jar
      [get] To: /data/src/trunk/automation/bda/lib/ivy-2.0.0-beta2.jar
      [get] Getting:
http://gforge.nci.nih.gov/svnroot/commonlibrary/trunk/ivy-repo/apache/iv
y-core/2.0.0-beta2/ivy-core-2.0.0-beta2.jar
      [get] To:
/data/src/trunk/automation/bda/lib/ivy-core-2.0.0-beta2.jar
[ivy:settings] :: Ivy 2.0.0-beta2 - 20080225093827 ::
http://ant.apache.org/ivy/ ::
[ivy:settings] :: loading settings :: file =
/data/src/trunk/automation/bda/ivy/ivy-bda-settings.xml
[ivy:resolve] :: resolving dependencies ::
ncicb#bda-download;working@ssaksa-fc8
[ivy:resolve]   confs: [runtime]
[ivy:resolve]   found ncicb#bda-utils;1.0 in ncicb-ivy-repo
[ivy:resolve]   found javax.activation#activation;1.0.2 in
ncicb-ivy-repo
[ivy:resolve]   found apache#antunit;1.0 in ncicb-ivy-repo
[ivy:resolve]   found apache#ant-contrib;1.0b3 in ncicb-ivy-repo
[ivy:resolve]   found jakarta#bcel;5.1 in ncicb-ivy-repo
[ivy:resolve]   found ncicb#clm;3.2 in ncicb-ivy-repo
[ivy:resolve]   found jakarta#commons-httpclient;3.0.1 in ncicb-ivy-repo
[ivy:resolve]   found jakarta#commons-logging;1.0.4 in ncicb-ivy-repo
[ivy:resolve]   found dbconfig#dbconfig;0.1.8 in ncicb-ivy-repo
[ivy:resolve]   found apache#ivy;1.3.1 in ncicb-ivy-repo
[ivy:resolve]   found jaxen#jaxen-core;1.0 in ncicb-ivy-repo
[ivy:resolve]   found jaxen#jaxen-jdom;1.0 in ncicb-ivy-repo
[ivy:resolve]   found jaxen#saxpath;1.0 in ncicb-ivy-repo
[ivy:resolve]   found oracle#ojdbc14;10.2.0.3.0 in ncicb-ivy-repo
[ivy:resolve]   found mysql#mysql-connector-java;5.0.5 in ncicb-ivy-repo
[ivy:resolve]   found org.jdom#jdom;1.1 in ncicb-ivy-repo
[ivy:resolve]   found javax.mail#mail;1.3 in ncicb-ivy-repo
[ivy:resolve]   found jcraft#jsch;0.1.34 in ncicb-ivy-repo
[ivy:resolve]   found org.tigris#antelope_app;3.4.1 in ncicb-ivy-repo
[ivy:resolve]   found org.tigris#AntelopeApp;3.4.1 in ncicb-ivy-repo
[ivy:resolve]   found org.tigris#svnant;1.0 in ncicb-ivy-repo
[ivy:resolve]   found org.tigris#svnClientAdapter;1.0 in ncicb-ivy-repo
[ivy:resolve]   found org.tigris#svnjavahl;1.0 in ncicb-ivy-repo
[ivy:resolve]   found xmlconfig#xmlconfig;0.1.9 in ncicb-ivy-repo
[ivy:resolve]   found ncicb#ncicb-ant;1.0 in ncicb-ivy-repo
[ivy:resolve]   found redhillconsulting#simian;2.2.24 in ncicb-ivy-repo
[ivy:resolve]   found ggtools#grand;1.8 in ncicb-ivy-repo
[ivy:resolve] :: resolution report :: resolve 1250ms :: artifacts dl
27ms
 
---------------------------------------------------------------------
        |                  |            modules            ||
artifacts   |
        |       conf       | number| search|dwnlded|evicted||
number|dwnlded|
 
---------------------------------------------------------------------
        |      runtime     |   27  |   27  |   0   |   0   ||   28  |
0   |
 
---------------------------------------------------------------------
[ivy:retrieve] :: retrieving :: ncicb#bda-download
[ivy:retrieve]  confs: [runtime]
[ivy:retrieve]  0 artifacts copied, 28 already retrieved (0kB/32ms)
    [unzip] Expanding:
/data/src/trunk/automation/bda/bda-utils/bda-build-utils-1.0.zip into
/data/src/trunk/automation/bda/bda-utils
test:compare-properties:
[propertyvalidator] Excess key(s) in environment file sample.properties:
- joe 
BUILD SUCCESSFUL
Total time: 3 seconds
[ssaksa@ssaksa-fc8 bda]$ 
 
ANT DEBUG ON ivy.resolver.default.check.modified
[ivy:resolve] == resolving dependencies for
ncicb#bda-download;working@ssaksa-fc8 [runtime]
[ivy:resolve] == resolving dependencies
ncicb#bda-download;working@ssaksa-fc8->ncicb#bda-utils;1.0
[runtime->runtime]
[ivy:resolve] ncicb-chain: Checking cache for: dependency:
ncicb#bda-utils;1.0 {runtime=[runtime]}
[ivy:resolve] don't use cache for ncicb#bda-utils;1.0:
checkModified=true
[ivy:resolve] don't use cache for ncicb#bda-utils;1.0:
checkModified=true
[ivy:resolve]           tried
http://url/ivy-repo/ncicb/bda-utils/1.0/ivy.xml
[ivy:resolve]   ncicb-ivy-repo: found md file for ncicb#bda-utils;1.0
[ivy:resolve]           =>
http://url/ivy-repo/ncicb/bda-utils/1.0/ivy.xml (1.0)
[ivy:resolve]   default-cache: revision in cache (not updated):
ncicb#bda-utils;1.0
[ivy:resolve]   found ncicb#bda-utils;1.0 in ncicb-ivy-repo
[ivy:resolve] == resolving dependencies
ncicb#bda-utils;1.0->javax.activation#activation;1.0.2 [runtime->master]
[ivy:resolve] ncicb-chain: Checking cache for: dependency:
javax.activation#activation;1.0.2 {runtime=[master]}

 
RELEVANT ANT SNIPPET
<property name="ivy.dep.file" value="ivy-bda.xml"/>
<property name="ivy.resolver.default.check.modified" value="true"/>
<ivy:settings file="ivy-bda-settings.xml" />
<ivy:resolve refresh="true" conf="runtime"/>
<ivy:retrieve pattern="${bda-utils.dir}/[artifact]-[revision].[ext]"
conf="runtime"/>

SETTINGS  FILE
<ivysettings>
        <settings defaultResolver="ncicb-chain" />
        <caches defaultCacheDir="${user.home}/.ivy2-${ant.project.name}"
useOrigin="true"/>
        <resolvers>
                <!-- this is where you read from -->
                <chain name="ncicb-chain">
                        <url name="ncicb-ivy-repo">
                                <artifact
pattern="http://url/ivy-repo/[organisation]/[module]/[revision]/[artifac
t]-[revision].[ext]" />
                                <ivy
pattern="http://url/ivy-repo/[organisation]/[module]/[revision]/ivy.xml"
/>
                        </url>
                        <!-- this is where you can publish to, either
your own code or for testing new thirdparty files -->
                        <filesystem name="local-repo" local="true">
                                <artifact
pattern="${local.repo.dir}/[organisation]/[module]/[revision]/[artifact]
-[revision].[ext]" />
                                <ivy
pattern="${local.repo.dir}/[organisation]/[module]/[revision]/ivy.xml"
/>
                        </filesystem>
                </chain>
        </resolvers>
</ivysettings>

BASE IVY DEPENDENCY FILE
<ivy-module version="1.0">
        <info organisation="ncicb" module="bda-download"
                />
        <configurations>
                <conf name="runtime"/>
        </configurations>
        <publications>
        </publications>
        <dependencies>
                <dependency org="ncicb" name="bda-utils" rev="1.0"
force="true" conf="runtime"/>
        </dependencies>
</ivy-module>

DEPENDEND PROJECT
<ivy-module version="1.3"            
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       
 
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd
">
  <info organisation="ncicb" 
        module="bda-utils"
        revision="1.0"
        publication="20080513121530"/>
  <configurations>
    <conf name="master"/>
    <conf name="compile"/>
    <conf name="runtime"/>
  </configurations>
  <publications>
          <artifact name="bda-build-utils" type="xml" conf="master,
compile, runtime" />
          <artifact name="bda-build-utils" type="zip" conf="master,
compile, runtime" />
  </publications>
  <dependencies>
          <dependency org="javax.activation"
                  name="activation"                 
                  rev="1.0.2"                 
                  force="true"                 
                  conf="runtime->master"/>
          <dependency org="apache"
                  name="antunit"                 
                  rev="1.0"                 
                  force="true"                 
                  conf="runtime->master"/>

..... Bunches of other depenencies
 
    <dependency org="apache"
                  name="log4j"                 
                  rev="1.2.8"
                  force="true"                 
                  conf="runtime->master"/>
  </dependencies>
</ivy-module>

LOCAL CACHE DIR
[ssaksa@ssaksa-fc8 bda-utils]$ pwd
/home/ssaksa/.ivy2-bda-utils/ncicb/bda-utils
[ssaksa@ssaksa-fc8 bda-utils]$ ls -lrt
total 40
drwxrwxr-x 2 ssaksa ssaksa 4096 2008-05-09 14:21 ivys
-rw-rw-r-- 1 ssaksa ssaksa 3347 2008-05-09 14:21 ivy-1.0.xml
drwxrwxr-x 2 ssaksa ssaksa 4096 2008-05-09 14:21 zips
drwxrwxr-x 2 ssaksa ssaksa 4096 2008-05-09 14:21 xmls
-rw-rw-r-- 1 ssaksa ssaksa  985 2008-05-13 14:10 ivydata-1.0.properties

IVY REPO
/home/ssaksa/src/trunk/commonlibrary/trunk/ivy-repo/ncicb/bda-utils/1.0
[ssaksa@ssaksa-fc8 1.0]$ ls -lrt
total 160
-rw-r--r-- 1 ssaksa ssaksa 10454 2008-04-22 14:09
bda-build-utils-1.0.zip
-rw-rw-r-- 1 ssaksa ssaksa 74760 2008-05-13 10:18
bda-build-utils-1.0.xml
-rw-rw-r-- 1 ssaksa ssaksa    58 2008-05-13 12:05
bda-build-utils-1.0.xml.md5
-rw-rw-r-- 1 ssaksa ssaksa    58 2008-05-13 12:05
bda-build-utils-1.0.zip.md5
-rw-rw-r-- 1 ssaksa ssaksa    66 2008-05-13 12:06
bda-build-utils-1.0.xml.sha1
-rw-rw-r-- 1 ssaksa ssaksa    66 2008-05-13 12:06
bda-build-utils-1.0.zip.sha1
-rw-rw-r-- 1 ssaksa ssaksa  5505 2008-05-13 14:09 ivy.xml
-rw-rw-r-- 1 ssaksa ssaksa    42 2008-05-13 14:09 ivy.xml.md5
-rw-rw-r-- 1 ssaksa ssaksa    50 2008-05-13 14:10 ivy.xml.sha1

WIRESHARK Caputre
HEAD /svnroot/commonlibrary/trunk/ivy-repo/ncicb/bda-utils/1.0/ivy.xml
HTTP/1.1
User-Agent: Java/1.5.0_10
Host: gforge.nci.nih.gov
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
 
HTTP/1.1 200 OK
Date: Tue, 13 May 2008 18:10:20 GMT
Server: Apache/2.2.2 (Unix)
ETag: "330//trunk/ivy-repo/ncicb/bda-utils/1.0/ivy.xml"
Accept-Ranges: bytes
Content-Length: 5505
Connection: close
Content-Type: text/plain; charset=UTF-8
 
HEAD
/svnroot/commonlibrary/trunk/ivy-repo/javax.activation/activation/1.0.2/
ivy.xml HTTP/1.1
User-Agent: Java/1.5.0_10
Host: gforge.nci.nih.gov
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
 
HTTP/1.1 200 OK
Date: Tue, 13 May 2008 18:10:20 GMT
Server: Apache/2.2.2 (Unix)
ETag: "244//trunk/ivy-repo/javax.activation/activation/1.0.2/ivy.xml"
Accept-Ranges: bytes
Content-Length: 801
Connection: close
Content-Type: text/plain; charset=UTF-8
X-Pad: avoid browser bug
 

Mime
View raw message