Repository Management with Nexus

1.2. Nexus Open Source

Nexus Open Source provides you with an essential level of control over the external Maven repositories you use and the internal repositories you create. It provides infrastructure and services for organizations that use repository managers to obtain and deliver software. If you create software libraries or applications for your end users, you can use Nexus Open Source to distribute your software. If your software depends on open source software components, you can cache software artifacts from remote repositories.

1.2.1. Nexus Open Source Features

Hosting Repositories
When you host a Maven repository with Nexus Open Source, you can upload artifacts using the Nexus interface, or you can deploy artifacts to hosted repositories using Maven. Nexus will also create the standard Nexus Index for all of your hosted repositories, which will allow tools like m2eclipse to rapidly locate software artifacts for your developers.
Proxy Remote Repositories
When you proxy a remote repository with Nexus Open Source, you can control all aspects of the connection to a remote repository, including security parameters, HTTP proxy settings. You can configure from which mirrors Nexus will download, how long Nexus will store artifacts, and how it will expire artifacts which are no longer referenced by your build.
Repository Groups
Grouping repositories allows you to consolidate multiple repositories into a single URL. This makes configuring your development environment very easy. All of your developers can point to a single repository group URL, and if anyone ever needs a custom remote repository added to the group, you can do this in a central location without having to modify every developer’s workstation.
Hosting Project Web Sites
Nexus is a publishing destination for project web sites. While you very easily generate a project web site with Maven, without Nexus, you will need to set up a WebDAV server and configure both your web server and build with the appropriate security credentials. With Nexus, you can deploy your project’s web site to the same infrastructure that hosts the project’s build output. This single destination for binaries and documentation helps to minimize the number of moving parts in your development environment. You don’t have to worry about configuring another web server or configuring your builds to distribute the project site using a different protocol. You simply point your project at Nexus and deploy the project site.
Fine-grained Security Model
Nexus Open Source ships with a very capable and customizable security model. Every operation in Nexus is associated with a privilege, and privileges can be combined into standard Nexus roles. Users can then be assigned both individual privileges and roles that can be applied globally or at a fine-grained level. You can create custom administrative roles that limit certain repository actions, such as deployment to specific groups of developers, and you can use these security roles to model the structure of your organization.
Flexible LDAP Integration
If your organization uses an LDAP server, Nexus Professional can integrate with an external authentication and access control system. Nexus Professional is smart enough to be able to automatically map LDAP groups to the appropriate Nexus roles, and it also provides a very flexible facility for mapping existing users and existing roles to Nexus roles.
Artifact Search
Nexus Open Source provides an intuitive search feature which allows you to search for software artifacts by identifiers, such as groupId, artifactId, version, classifier, and packaging, names of classes contained in Java archives, keywords, and artifact checksums. Nexus search makes use of the industry standard for repository indexes, the Nexus Index format, and Nexus will automatically download a Nexus index from all remote repositories which create their own Nexus index. Nexus will also automatically expose a Nexus index for any hosted repositories you create.
Scheduled Tasks
Nexus Open Source has the concept of scheduled tasks: periodic jobs which take care of various repository management tasks, such as deleting old snapshots, evicting unused items, and publishing repository indexes.
REST Services
Nexus Open Source is based on a series of REST services, and when you are using the Nexus web front-end UI, you are really just interacting with a set of REST services. Because of this open architecture, you can leverage the REST service to create custom interactions or to automate repository management with your own scripts.
Integration with m2eclipse
When you use Nexus as a repository manager it creates indexes that support the Maven integration for the Eclipse IDE - m2eclipse. They are immediately available to m2eclipse project creation wizards and are included in m2eclipse search results.
Support for NuGet repositories
Full support for NuGet proxy and hosted repositories as well as repository groups as described in Chapter 16, .NET Package Repositories with NuGet.

1.2.2. Nexus Open Source License

Nexus Open Source is made available under the Eclipse Public License version 1.0. The text of this license is available from the Open Source Initiative (OSI) here: http://www.opensource.org/licenses/eclipse-1.0.php