Introducing Nexus the Maven Repository Manager


April 3, 2008 By Brian Fox

In order to really leverage the power of Maven in an Enterprise environment, you need several things:

  • a location to deploy and share internal artifacts
  • a way to optimize the retrieval of external artifacts
  • a way to keep developers working when the network goes out.
  • a way to future proof your development process against repositories going away.
  • visibility into the artifacts being used
  • ways to move artifacts efficiently between remote offices
  • centralized control over the external repositories being used

Nexus is the answer to these problems and more. It combines the ability to deploy your artifacts easily without extensions with a powerful proxy and indexing engine.

Some key features:

  • Runs out-of-the-box using an embedded Jetty instance on top of plexus. No messing around with some random Application Server here…just start the script and go!
  • No database required. Nexus stores the data using the filesystem and builds indexes with Lucene
  • It is able to read and convert Proximity configurations and data
  • Professionally written documentation
  • 100% configurable via a rich Ajax UI built with ExtJs
  • Full REST APIs made possible using Restlet
  • Full integration with Eclipse using m2eclipse and the Nexus indexer
  • Repository RSS feeds for recently deployed and cached artifacts. More on the way…
  • Full indexing and searching of locally hosted and proxied repositories. Nexus is able to download indexes from the remote repositories to allow a full search of the available content, not just content that has already been proxied
  • On-the-fly repository metadata correction: if a proxied repository contains snapshots and releases Nexus removes removes the versions from the metadata that don’t match the type or repository you have configured.
  • Checksum verification of downloaded artifacts. Policies control how Nexus handles from ignore all the way to require valid checksums
  • Logical groups: Nexus allows you to logically represent any number of proxied, or hosted repositories as a single group which accessible via a unified URL. This allows central control over the repositories used and the artifacts retrieved from them. No more relying on multiple repository configurations in your poms or developer settings
  • Repositories can be aggregated into multiple groups without duplicating the data on the disk
  • Artifact request optimization based on groupId or artifactId: You can configure Nexus to not look in certain places for certain artifacts. For example you wouldn’t need to search Maven’s central repository for your own organization’s artifacts.
  • Ability to present and proxy Maven 2.x repositories to Maven 1.x clients: this means that you can service all users of Maven 1.x and Maven 2.x in your organization using Nexus.
  • Intelligent NFC (not found cache), ability to persist NFC cache to disk. Complete ehcache config exposed to user for tuning.
  • Ability to check remote peer availability and make a Nexus proxy “offline” automatically (prevent any reach attempt toward unreachable remote repo) HTTP proxy and connection settings may be set “globally” or per repo remote peer. This means nexus is able to use more than one HTTP proxy simultaneously.

We have many more exciting features planned for Nexus in the near future.

Enough talk, click on over to the Nexus site where you can find more information and the download link. We’d love to hear from you on our user list and on irc.codehaus.org #nexus.
Also be sure to visit our Maven book, which contains a Nexus chapter.