I have to learn to work with Maven and Spring. Around the web I have seen in various places the term " spring milestones" and "spring milestones repository". But was is a such a milestone ? I googled it, but I didn't find that one definition to satisfy my curiosity. Can anyone help me?
In order to produce a final release, code would go through several milestones as key features are implemented.
Once all new features are implemented, the code would then usually go through various pre-release stages, such as betas and release candidates. When everyone is happy, a final version is released and the whole process begins again.
In Spring land this process goes:
Mx
for a Milestone release, sequentially numberedRCx
for a Release Candidate, sequentially numberedGA
for "General Availability" release - the final versionSee this other SO answer for details on the different types.
Now, the Spring Milestone repo is a standard Maven repo - plugin or otherwise doesn't matter overmuch.
It's policy at Spring to publish milestone releases to the general public for those interested in testing them. Almost all publishing of Java binary artefacts is done on Maven these days. Hence these milestones are published into a Maven repo.
To make clear that these milestones releases are not to be used in production code they are published to a separate repo rather than Maven Central. Basically, don't use milestones unless you know what you are doing. And expect bugs.
For more information on how Spring manages its repositories it's worth having a look at the Spring repository FAQ