> > > It's the difference between: > "I'm trying to build something that the user wants to call 1.0.0. As > part of that process I'll check whether it conflicts with what is currently > 1.0.0, and if it does I'll fail, not actually creating the artefact at all, > and suggest that they change the version numbers appropriately." >
In maven you always build snapshots unless doing a full release. If you use a non SNAPSHOT version in the code on master then you are doing it wrong. So what you say in maven terms is I build 1.0.0-SNAPSHOT and want it to fail if it conflicts with the current 1.0.0-SNAPSHOT. This is inherently fragile as the current snapshot is transient and might even be different between developers. So it is much better to compare the current code with the last release and fail if it is incompatible. This is exactly what the baselining does. After the fail you then once increase the package version and get your build working again. Future changes in this package will then not fail the build until you do a release which moves the baseline again. Christian Open Source Architect http://www.talend.com <https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.talend.com>