I have a situation where a chain of Java projects in SVN need to be built for continuous integration. The projects can exist in multiple branches, and I want to perform CI builds on all of them. However, I would rather not have a different Jenkins project for each Java projects/SVN branch combination. What I have done is to create Jenkins projects that take the SVN branch as a parameter, and set up the project dependency chain, passing the branch parameter along. (I am using Ivy for this project, rather than Maven, so I don't have a plugin to do that for me.) I set up a chain kickoff job for each branch which defines the branch parameter and starts automatically several times each day.
PROS: This allows me to create a single Jenkins kick-off project for each branch, rather than the entire chain of projects.
CONS: The build happens on a schedule, rather than as a result of SVN polling. This means all the branches build multiple times a day, even if no changes have been made in that branch.
What I would like to happen ideally is have the kickoff project poll ALL the projects in the chain periodically, and build the chain if there are any changes. Is there a way to do that? Would it be as simple as specifying all the project locations in the kickoff project (using the branch parameter) and then specify polling as the build trigger?