The Central Repository Is Tool Agnostic

May 27, 2008 By Brian Fox

2 minute read time

Gaining a larger user base is usually a goal of most OSS projects and obviously making it easier for users to get and user your project will help to grow that base. That's why I was disappointed to see the following statement from a fellow OSS developer in response to the donation of a pom to get a new artifact added to the repo: "That's great and all, but I don't really care about Maven, nor do I really want to add or maintain a pom.xml in the project. Sorry." Disclaimer: I've never used this project, nor do I know any of the developers, but the statement stands for itself.

The Maven Central repository is a great resource to the community. The
artifacts contained here represent a vast variety of open source
projects. Having the artifacts here not only enables easy consumption
by Maven users, but even Ant users via Ivy. Beyond the jars themselves, complete poms can be a wealth of information for users, such as where the source is located, mailing lists, which license is used, etc. Often the source and javadocs are packaged up for easy development in IDEs

There is some work occurring to abstract the artifact, metadata and
transport of artifacts to enable easy consumption by other tools. The intent of the maven-artifact-3.0 project is to provide a simple set of APIs that can operate against the repository data for dependency analysis and retrieval. The framework is being designed to allow pluggable rules to extend and support the various concepts in use out there such as Maven, OSGI and Ivy. All this is being done in a way to keep it fully decoupled from the Maven core code.

In
summary, the Central repository is a resource that enables greater
distribution and consumption of your project by many types of users. The desire make life easier for your users should transcend your personal views on any particular tool.

The Maven project does have a mechanism for taking community created poms (although we prefer they come from the project itself). If you run into a wall with some project and that isn't enough to cause you to choose another implementation, then you can read more about how to get said walled project into the repository here.
Making it easier to get things into the Central repository is something we have been looking in to. We have some ideas, but the first step is working through the MEV list and we have recently started doing just that.

Tags: Nexus Repo Reel, Everything Open Source

Written by Brian Fox

Brian Fox is a software developer, innovator and entrepreneur. He is an active contributor within the open source development community, most prominently as a member of the Apache Software Foundation and former Chair of the Apache Maven project. As the CTO and co-founder of Sonatype, he is focused on building a platform for developers and DevOps professionals to build high-quality, secure applications with open source components.