
Modular and Extensible
The modular and extensible architecture at the foundation of Nexus Professional is based on the same technology as Apache Maven.
Nexus Professional provides access to a number of components and subsystems and a rich interface for plugin developers via the Plexus container.
Plexus is a modular, component-oriented, IoC container which serves as the bus for coordinating all of the systems and modules required to manage repositories.
Rich ExtJS-based GUI
The Nexus Professional graphical user interface (GUI) is based on ExtJS, a rich set of AJAX components that are used to create a first-class GUI experience on par with a desktop application. Just as Nexus provides a rich API for plugin, the Nexus GUI also provides hooks for customization.
Open Services Platform
Both Apache Maven and Nexus Professional GUI interact with a series of well-documented representational state transfer (REST) services, making it easy to customize Nexus behavior. All you need to do is open the specifications for these services and start writing custom utilities. Look on the Sonatype blogs for in Ruby, Groovy, and Python.
Integration with Maven
Repository managers serve two purposes: they act as highly configurable proxies between your organization and the public Maven repositories and they also provide an organization with a deployment destination for your own generated artifacts.
Proxying with Nexus Professional
Proxying a Maven repository brings a number of benefits. Proxying speeds up builds throughout your organization by installing a local cache for all artifacts from the Central Maven repository. If a developer in your organization needs to download version 2.5 of the Spring Framework and you are using Nexus, the dependencies (and the dependency's dependencies) only need to be downloaded from the remote repository once.
With a high-speed connection to the Internet this might seem like a minor concern, but if you are constantly asking your developers to download hundreds of megabytes of third-party dependencies, the real cost savings are going to be the time it takes Maven to check for new versions of dependencies and to download dependencies. Serving Maven dependencies from a local repository can save you hundreds of requests over HTTP, and, in very large multi-project builds, this can shave minutes from a build.
Procurement with Nexus Professional
Nexus Procurement Suite provides an organization with control over what artifacts are allowed into a repository from an external, proxied repository such as the Central Maven Repository. Such control can be a prerequisite for organizations unwilling or unable to trust the entire contents of an external public repository. If an organization is developing mission critical code, they will likely want to subject every third party dependency to intense scrutiny and testing before making an artifact available to build a release or support a team of developers.
In most Enterprise development environments, a developer can't just decide to add in a new dependency to Hibernate or to the Spring Framework on a whim; the decision to add dependencies to third-party libraries will need to be funnelled through an oversight process that relies on an architect or an administrator to promote artifacts to a certified release repository.
Another, more common experience is an organization which needs to proxy something like the Central Maven Repository but wants to limit access to specific versions of artifacts or prevent dependencies on everything contained under a specific group. Some organizations are more amenable to trusting the contents of a remote, proxied repository like Central, but they also need the ability to block certain dependencies.
Maybe you work on a team that needs to limit access to dependencies with a certain license, or maybe you just want to make sure no one uses a problematic version of Hibernate with a known bug? The procurement suite is the tool that provides for both coarse and fine-grained control of the artifacts that can appear in a repository. For more information, read the Procurement Chapter in Repository Management with Nexus.
Staging Releases with Nexus Professional
If you release artifacts to users or customers, you will often need to test these releases before deploying them to externally accessible repositories. Nexus Staging Suite allows an organization to create a staging repository and to manage the promotion of artifacts from a staging repository to a release repository. Nexus Staging Suite provides an organization with a workflow for controlling releases. For more information, read the Staging Chapter in Repository Management with Nexus.
LDAP Integration
Nexus Professional adds a Lightweight Directory Access Protocol (LDAP) Authentication realm which provides Nexus with the capability to authenticate users against an LDAP server. In addition to handling authentication, Nexus can be configured to map Nexus roles to LDAP groups. If an LDAP user is a member of a group that matches the ID of a Nexus role, Nexus will grant that user the matching Nexus Role. In addition to this highly configurable user and group mapping capability, Nexus can augment LDAP group membership with Nexus-specific user-role mapping. For more information, read the LDAP Integration chapter inRepository Management with Nexus
