0
votes

We have a project composed of 75 individual modules. Each of these modules have their own ivy.xml file which contains both 3rd party and internal module dependencies. We are currently using Jenkins and the IVY plugin to poll SCM and build / publish artefacts to ivy. Trouble is, I have noticed an issue regarding module publication and I want to try and understand what the correct approach is regarding snapshot publication.

If artefact B depends on A and a change is made to A then I get B needs to be notified and a build triggered. If B compiles, but there have been no changes to B's code then I would say that B does NOT need to publish a new snapshot artefact?

What I want to understand is how you do this, given that the checkout from SVN happens before the IVY plugin runs. When the build.xml is called for the module it just runs a compile / jar / publish to IVY. Just wondering whether there is a way to detect that an IVY publish is not required?

1

1 Answers

0
votes

The problem with snapshot builds is that they're constantly changing. You depend on version 1.0-SNAPSHOT, but under the hood there are multiple copies of that dependencies, timestamped. What it means is that a project that has a snapshot dependency should really just build anyway, at least the tests will run and you'll know everything is still working.

At the end of the day I wouldn't sweat having lots of "unncessary" snapshot revisions. Most repository managers are capable of purging old snapshot builds, which keeps you storage space under control.

Hope this helps.