Hi all,
I have four projects: - Project A, which publishes some JAR files - Project B, which depends on Project A and publishes some JAR files - Project C, which publishes a WAR file and depends on the jars from Project A - Project D, which publishes a WAR file based on project C, but also including additional jar files from Project B The Ant build script for Project D unpacks the WAR file from Project C, adds its dependencies using a standard Ant <copy> task, then repackages the WAR file before publishing. Now, I've made a new release of Projects A and C. The API for project A hasn't changed, so there is no need to re-release Project B. I'm finding that when I rebuild Project D, the previous release of Project A has been included. Digging a bit deeper, it appears that my <copy> task is copying the Jar files for Project B and the old release of Project A (which was downloaded through the dependencies of Project B). Although I say "old release", Ant considers it to be the newer version of the Project A files, because Ant's comparison is simply based on the file timestamps. The unpacked WAR file libraries (which include the new release of Project A) have an older timestamp than the Jar files downloaded from the Ivy repository for Project A. I had a look at the Ivy documentation but couldn't find any way to control the timestamping behaviour of an Ivy resolver (I'm using the SSH resolver). What I really need is the ability for Ivy to do the equivalent of "scp -p" when it is downloading or resolving artifacts from the repository. Does anyone have suggestions for a way to achieve this? Thanks, Keith
