Search code examples
springmilestone

What is a spring milestone?


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?


Solution

  • A milestone is a project management term.

    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 numbered
    • RCx for a Release Candidate, sequentially numbered
    • GA for "General Availability" release - the final version

    See this other SO answer for details on the different types.

    OP asks: and why does it need a plugin-repository?

    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