Indexing repositories

by Dejan Bosanac


Dependency management was always one of the crucial Java project management tasks. It's where tools such as Maven and Ivy make all the difference and allow developers to maintain their project dependencies in an easy way. There are two important elements for this to happen:




  • Centralized repositories - containing library JARs


  • Metadata - describing those JARs and creating repository structure



This is something we have for years thanks to the Maven developers. But if you ever tried to manage dependencies manually in your project, you know how tedious this task can be:





  • Find a library you want to include


  • Find out its metadata (groupid, artifactid and version)


  • Put an appropriate XML snippet in your project management definition file



I find step number two especially tedious and that's why I've always thought we need an additional component to make our lives a bit easier. That missing link are "indexes" that would make repositories easily searchable and provide infrastructure for building useful tools for developers.



Fortunately, there has been some activity in this area lately. First, Eugene Kuleshov wrote about new Maven plugin for Eclipse and general purpose Nexus indexer. If you use Eclipse for the Maven-based project be sure to try this stuff out. It's really refreshing approach to working with your poms (especially a quick search funcionality).



While I was at this, I wanted to see if there were any progress on web sites that offers similar services (which I think is important tool for Java community). mvnrepository.com has some problems with stability (and performances) lately and I was glad to see Xavier Hanin's new project called JavaRepo. It's a promising start, (simple UI and useful info) and could be made into a really useful service. What I would like to see from a service like this is:





  • Ability to add additional public repositories (snapshots, etc) and snippets
    for configuring poms with appropriate repository definition


  • Ability to "subscribe" to a module and receive new release notifications in
    news readers (RSS/Atom)


  • Better result sorting (newest revisions first, relevance, etc.)



I know all this takes time to brush, but it's great to see things are moving in the right direction.


2 Comments

Lukas Krecan
2008-03-31 07:50:09
There is also mvnindex.org that indexes central Maven repository. It provides Eclipse plugin as well as online search.
Brennan
2008-03-31 10:27:41
Actually, I use the Maven plug-in strictly for dependency management only, for which it works great. If you've shied away from using Maven because it's "overkill" for a given project, you might want to check out m2eclipse just for the dependency management alone.