Le 29 févr. 08 à 20:24, Juha Ranta a écrit :

Hello,

As an introduction, I have an existing build system that I'm trying to improve by using Ivy. I think Ivy is very cool, so big thanks for it!

I have a build server with projects checked out from CVS in one directory like this:

projectA/
projectB/
projectC/
projectD/
....

Each project has in its root directory a build.xml and ivy.xml which also come from CVS.

Each of these projects can build, tag, etc, itself and finally publish its artifact to an Ivy repository independently without directly referencing other projects. Now I'd like to implement a simple script which polls CVS and builds automatically builds new artifacts from projects which, well, need to be built. I can quite easily get a list of these projects with the Ant task buildlist sorted so that, for example, if A depends on B, B gets built and published before A. During the buildlist processing, the script goes through each of the projects to see if there are any changes in CVS and if there are, the project gets built. This works fine except that there are also the dynamic "latest.integration" revisions in the ivy.xmls and the script doesn't know if some if the dynamic revisions have changed by just polling CVS.

I think that my script would work like I wanted it to if it would trigger a new build if the project has changed in CVS since the last build *or* if the dynamic revisions have changed. Therefore I'm now wondering what's the best way to check whether the dynamic revisions have changed. My script can get to the "static" ivy.xml of the previous build. It perhaps would work if the script executed "resolve", "delivered" a new static ivy.xml and then somehow diffed the static dependencies of the previous static ivy.xml to the new static ivy.xml to decide whether a new build should be triggered.

Are the some easy ways to check if the dependencies of the latest resolved ivy.xml differ from those of a previously resolved ivy.xml? Or you think my approach is way off and that I should do it some other way?


I have no answer but a question :)
It seems strange to me of having a dynamic revision that does not change between two builds. What is the rationale behind it ?

Nicolas

Reply via email to