<snip> >> <parent> >> <artifactId>foo</artifactId> >> <version>LATEST</version> >> </parent> >And that prevents your build from being reproducible...
Not If you combine dynamic version ranges with replacement during deploy and release the builds remain reproducable. They are in fact even more reproducable than now. Example: You trunk would contain: <parent> <version>latest<version> </parent> a tag in svn or a resolved pom within a jar/war/ whatever should automatically have the used version written in: <parent> <version>1.2.3</version> </parent> If you then stop using SNAPSHOT versions an have your CI Server produces a new version for every Build each single build becomes reproducable which is even more than you have now. In my opinion that is what on should aim for. The only difference between a CI build and a release is that a release has been tested and marked as "good". So each CI build is a potential release and as such should be reproducable. > <parent> > <version>[1.0,2.0-!)</version> > </parent> I've tried that and it doesn't work. Theres even an ticket for that one: http://jira.codehaus.org/browse/MNG-2199 There are in fact more tickets about using latest version and dynamic version replacement (or replacing properties)
