News and Notes from the Makers of Nexus | Sonatype Blog

Using Staging Repositories for Deployment in Nexus

Written by Brian Demers | June 17, 2009

For a number of reasons you might want to require your developers to use a staging repository. Staged software releases in Sonatype Nexus Repository (formerly known as Nexus Professional) are the best way to enable your development team to push a release to an artifact repository such as Sonatype Nexus Repository while providing management and quality assurance with a way to test and approve a release before "burning" it to production.

First step, is to download Sonatype Nexus Repository if you don't already have it installed, you can do so, by going to the product page. Once you've downloaded, log in as an administrator as you must have administrative rights to perform the following configuration:

  1. From Nexus, click on the 'Repositories' link in left navigation.

  2. Click on the repository you want to use, or create one.

  3. Click on the 'Configuration' tab.

  4. Set the 'Allow Deployment' field to false.

  5. Click the Save button.

That is it! Users will not be able to deploy or upload artifacts directly to the repository. All artifacts must be staged and promoted to this repository.

Create a Staging repository

To create a staging repository:

  1. From Nexus, click on the 'Staging' link in left navigation.
  2. Click the 'Add' button then the 'Staging Profile' item.
  3. Enter the following information:
    • Profile Name: Staging Demo Profile
    • Profile Repository Target: All (Maven2)
    • Staging Repository ID Template: staging-demo
    • Staging Repository Name Template: Staging Demo
    • Staging Repository Template: Default Release Hosted Repository Template
    • Target Groups: Public Releases
  4. Click the 'Save' button

Assign permissions to users

A new role is created for each staging profile that is created ( in this example the role is 'Staging Deployer: (Staging Demo Profile)'). Assign the new role to your users. You can find more details on user management.