We have a very similar environment to what scott and tdrury describe with upstream/downstream builds requiring to sync to a known changelist number. In our current home grown Maven base CI system we have been using quite successfully the perforce counters idea to manage the builds.
I created a patch for the trunk version 1.18 of the plugin that works as follows and satisfies this need for our continuous integration builds.
A new field "P4 Counter" is available to set the name of the counter. A checkbox controls if this is an upstream build which will update the value of the counter when it performs a successful sync or a downstream build which uses the value of the counter to perform a sync to the given changelist. It works very nicely for our needs.
I also added an unrelated feature that I found I needed on occasion. The P4PASSWD value is set by the plugin in the environment as well as the other Perforce variables that are currently set. This is optional since most folks would consider a password in the environment a VERY bad idea but for us it was already the way we had setup our build environment and it only made sense to continue for now. This allows perforce commands embedded in script steps to succeed without requiring a "p4 login" on the slaves. I would prefer that this is not done but could not think of a way to make it happen transparently. Perhaps an option would be for the plugin to perform a "p4 login" on the slaves? But this could have unintended side-effects since the "p4 login" session would be shared across all jobs running on the slave concurrently and not all jobs are necessarily using the same Perforce credentials.
I can post a patch diff if this is of interest to others or to the submitters so that this can be included in a future version of the plugin.
Here's further explanation of Scott's (and my) issue:
We have a large, enterprise project that consists of about 100 maven modules.
We would create a Hudson project from each module. The modules have
inter-dependencies. We want to make sure all the modules are build from the
same "snapshot in time". We could do this be labeling the code, but that's a
lot of overhead. Perforce allows you to build from a changelist - presumably
this is done via the time the changelist was submitted.
Since this needs to apply to 100 or so Hudson projects simultaneously, setting
this per-project is not feasible. What we need is a way to set this either
globally, or for a group of projects.
Can anyone think of any other solution to build a large number of maven projects
in Hudson from the same point in time (or Perforce changelist)?