
Spring, Maven, and Nexus best practices
1 minute read time
Today [Keith][1] posted an [entry about obtaining Spring 3 artifacts with Maven][spring3Artifacts] using the method of sourcing Maven repositories from inside POMs. I wanted to suggest an alternative for Spring users which draws upon best practices that we've developed over time with our enterprise clients doing large builds with a healthy number of developers on the team. Putting repositories in POMs generally looked dimly upon and I consider it an anti-pattern for enterprise build and release. I won't go into the details here but instead refer you to [Brian Fox's][2] [blog entry on the matter][pomsInRepos].
The alternative I would suggest is use a repository manager like [Nexus][nexus] and proxy the Spring repositories that you are interested in using. I would assume that at some point in time a team might be interested in releases, milestones and snaphot repositories. So at [Nexus OSS][nexusoss] I setup the three Spring repositories as you see below.
You then might want to use a single URL in your Maven settings to represent the set of Spring repositories as you can see below.
Most organizations though end up having a single URL for developers where all the repositories you might use are managed in a single location. Sonatype has some documentation in the Nexus book for [configuring your developers to use a single group][nexusGroup]. This is usually the way large organizations manage their developers when working with Maven, but I just wanted to show how easy it is to create proxies and manage them together in groups with Nexus.
I know that the vast majority of Spring users are Maven users so I hope this helps get their Maven-based environments setup in a best-practices fashion.
[1]: http://twitter.com/kdonald
[2]: http://twitter.com/brian_fox
[spring3Artifacts]: http://blog.springsource.com/2009/12/02/obtaining-spring-3-artifacts-with-maven/
[pomsInRepos]: http://www.sonatype.com/people/2009/02/why-putting-repositories-in-your-poms-is-a-bad-idea/
[nexusGroup]: http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.html
[nexus]: http://nexus.sonatype.org
[nexusoss]: http://oss.sonatype.org

Jason is a co-founder and the former CTO of Sonatype.
Explore All Posts by Jason van ZylTry Nexus Repository Free Today
Sonatype Nexus Repository is the world’s most trusted artifact repository manager. Experience the difference and download Community Edition for free.