Explore Nexus Plugin API | Sonatype Blog

Nexus Plugin API

January 22, 2009
By Brian Fox

2 minute read time

We have mentioned that the Sonatype Nexus Repository features are just plugins to the OSS core, but we haven't yet formally discussed it. This blog post is an attempt to introduce the Nexus plugin API.

Most of the architectural work done to Nexus in the 1.1, 1.2, 1.3 releases has been done to build and enhance the plugin model and convert existing 1.0 features to the new model. Right now, a Nexus plugin is essentially a jar containing plexus components and resources, such as JavaScript, alongside a simple descriptor. Nexus plugins can add new REST services, add components that affect a request, and even add new UI elements and menu options to the user interface. A look at the functionality defined by each of the Pro features gives a good overview of how significant a plugin can be:

Plugins can also:

The current plugin model requires a restart of Nexus to introduce new plugins. Jason has built a plugin manager based on the Maven plugin model, and work is already underway to integrate this into Nexus 1.4. The plugin manager will allow plugins to be loaded/unloaded/reloaded in real time without restarting the system. Full API documentation and examples are under construction and will be covered in future versions of the Nexus Book.

Extending Nexus With Plugins

All further functionality we build, both OSS core and Pro will be built as a plugin, which means the plugin model will expand and become more robust over time. It's not an unused API sitting idle.

Justin Edelson has already come forward with a Crowd plugin for Nexus, and a release is imminent in the Sonatype Forge - Nexus Plugins project. This will be a significant milestone, as it represents the first plugin built and released entirely outside the core Nexus team. There have also been many simple LDAP plugins created by third-parties. While we certainly believe our own LDAP is more capable, the fact that there are already competing options is a testament to the flexibility of the product.

If you have a Nexus plugin or want to write one, please ping us on the Nexus Developer list. We will provide SVN, Jira, Confluence and Nexus repository services via the Sonatype Forge to support this effort.

Written by Brian Fox

Brian Fox, CTO and co-founder of Sonatype, is a Governing Board Member for the Open Source Security Foundation (OpenSSF), a Governing Board Member for the Fintech Open Source Foundation (FINOS), a member of the Monetary Authority of Singapore Cyber and Technology Resilience Experts (CTREX) Panel, a member of the Apache Software Foundation and former Chair of the Apache Maven project. Working with OpenSSF, Brian helped create The Open Source Consumption Manifesto, urging organizations to elevate awareness of open source usage. He also chaired efforts to provide official responses to requests for information from the The Office of the National Cybersecurity Directorate (ONCD) and the Cybersecurity and Infrastructure Security Agency (CISA). Within the Atlantic Council's Open Source Policy Network, Brian actively helps shape cybersecurity strategy, offering valuable insights on critical documents, such as ONCD's recent National Cyber Security Strategy. Brian has over 20 years of experience driving the vision behind, as well as developing and leading the development of software for organizations ranging from startups to large enterprises. Brian is a frequent speaker at national and regional events including Java User Groups and other security and development-related conferences.