On Tue, Apr 22, 2008 at 7:49 AM, Max Rydahl Andersen
<max.andersen(a)redhat.com> wrote:
Damn, a long thread and I never thought I would be the one pointing
to a solution
for many of these issues.
Did anyone look into the enforcer plugin for Maven ?
http://maven.apache.org/plugins/maven-enforcer-plugin/
What we do at my company is the following:
1. All component builds are run through a build server.
2. We have our own repository and only official builds are uploaded
from the build server.
3. We use the Maven release plugin which prevents us from releasing
using a SNAPSHOT release. The release plug-in enforces that every
internal release version has a build number. Every release must pass
100% of tests.
4. The build only downloads artifacts from the official repository.
5. Every build-related plug-in must have a version assigned to it.
There are still a couple of problems mainly to do with the fact we
have lots of build numbers :-) But release early, release often they
say.
Also, the release plug-in has some stupid limitations, like
"prompting" for release number, which prevents it from being used
non-interactively. So we have our own release plug-in. See:
http://jira.codehaus.org/browse/MRELEASE-173
If you want to use SNAPSHOT releases, you can within your own laptop
or team. But anything that gets QA'd (released) must have a specific
set of build numbers.