Repository Management with Nexus
Ed. 3.0.2
i
Repository Management with Nexus
Ed. 3.0.2
Repository Management with Nexus
Ed. 3.0.2
ii
Copyright © 2011 Sonatype, Inc.
Repository Management with Nexus
Ed. 3.0.2
iii
Contents
1 Introducing Sonatype Nexus 1
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Nexus Open Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1 Nexus Open Source Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.2 Nexus Open Source License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Nexus Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.1 Nexus Professional Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.2 Nexus Professional License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Choosing a Nexus Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.1 Use Nexus Open Source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.2 Use Nexus Professional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.3 Comparing Nexus Open Source and Nexus Professional Features . . . . . . . . . . . . . . . . . . . . . 5
1.5 History of Nexus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Repository Management 7
2.1 Repository Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 Proxying Public Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2 Managing Releases and Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.3 Getting Control of Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.4 A Nexus for Collaboration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 What is a Repository? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1 Release and Snapshot Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 Repository Coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.3 Addressing Resources in a Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.4 The Maven Central Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 What is a Repository Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.1 Core Capabilities of a Repository Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.2 Additional Features of a Repository Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Reasons to Use a Repository Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4.1 Speed Up Your Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Repository Management with Nexus
Ed. 3.0.2
iv
2.4.2 Save Bandwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4.3 Ease the Burden on Central . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4.4 Gain Predictability and Scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4.5 Control and Audit Dependencies and Releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4.6 Deploy 3rd Party Artifacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4.7 Collaborate with Internal Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.8 Distribute with Public Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5 Adopting a Repository Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.1 Stage Zero: Before Using a Repository Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.2 Stage One: Proxying Remote Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5.3 Stage Two: Hosting a Repository Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5.4 Stage Three: Continuous Collaboration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5.5 Stage Four: Lifecycle Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Installing and Running Nexus 18
3.1 Downloading Nexus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.1 Downloading Nexus Open Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.2 Downloading Nexus Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Installing Nexus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.1 Nexus Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.2 Installing Nexus Open Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.3 Installing Nexus Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3 Upgrading Nexus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4 Running Nexus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5 Post-Install Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.6 Configuring Nexus as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.6.1 Startup Scripts for GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.6.1.1 Add Nexus as a Service on Redhat, Fedora, and CentOS . . . . . . . . . . . . . . . . . . . . . 25
3.6.1.2 Add Nexus as a Service on Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.6.2 Running Nexus as a Service on Mac OS X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.7 Running Nexus Behind a Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.8 Installing the Nexus WAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.8.1 Running the Nexus WAR in Glassfish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.9 Installing a Nexus Professional License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.9.1 Evaluation Expiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.10 Sonatype Nexus Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.10.1 Sonatype Nexus Work Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.10.2 Nexus Configuration Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Repository Management with Nexus
Ed. 3.0.2
v
4 Configuring Maven to Use Nexus 34
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2 Configuring Maven to Use a Single Nexus Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3 Adding Custom Repositories for Missing Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4 Adding a New Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.5 Adding a Repository to a Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5 Using Nexus 38
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2 Browsing Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.2.1 View Artifact Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2.2 Viewing Artifact Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2.3 Editing Artifact Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.3 Browsing Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.4 Searching for Artifacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.4.1 Nexus OpenSearch Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.4.2 Searching Artifact Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.5 Uploading Artifacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.6 Browsing System Feeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.7 Log Files and Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.8 Changing Your Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.9 Filing a Problem Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6 Configuring Nexus 55
6.1 Configuring Nexus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.2 Customizing Server Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.3 Configuring Automated Error Reporting Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.4 New Version Notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.5 Managing Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.5.1 Selecting Mirrors for Proxy Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.5.2 Adding a Mirror Entry for a Hosted Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.5.3 Viewing Repository Summary Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.5.4 Auto Block/Unblock of Remote Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.6 Managing Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.7 Managing Routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.8 Managing Scheduled Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.8.1 Managing Configuration Backups with a Scheduled Task . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.9 Managing Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.10 Managing Privileges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78