Today, Keith Donald posted an entry about obtaining Spring 3 artifacts with Maven using the method of sourcing Maven repositories from inside POMs. I wanted to suggest an alternative for Spring users, which draws on the best practices 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 blog entry on the matter.
The alternative I would suggest is to use a repository manager like Sonatype Nexus Repository and proxy the Spring repositories that you are interested in using. I would assume a team might be interested in releases, milestones, and snaphot repositories. So at Nexus OSS (now known as Sonatype Nexus Repository Community Edition) I setup the three Spring repositories as you see below.
You 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. 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 most Spring users are Maven users, so I hope this helps get their Maven-based environments setup in a best-practices fashion.
Jason is a co-founder and the former CTO of Sonatype.
Explore All Posts by Jason van ZylTags
Try 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.