Copyright © 2010 Sonatype, Inc.
Abstract
Repository Management with Nexus is a book about Sonatype Nexus.
Abstract
Nexus manages software “artifacts” required for development, deployment, and provisioning. If you develop software, Nexus can help you share those artifacts with other developers and end-users. Maven’s central repository has always served as a great convenience for users of Maven, but it has always been recommended to maintain your own repositories to ensure stability within your organization. Nexus greatly simplifies the maintenance of your own internal repositories and access to external repositories. With Nexus you can completely control access to, and deployment of, every artifact in your organization from a single location.
- Copyright
- Foreword: 2.6.2
- 1. Introducing Sonatype Nexus
- 2. Repository Management
-
- 2.1. Repository Management
- 2.2. What is a Repository?
- 2.3. What is a Repository Manager
- 2.4. Reasons to Use a Repository Manager
-
- 2.4.1. Speed Up Your Builds
- 2.4.2. Save Bandwidth
- 2.4.3. Ease the Burden on Central
- 2.4.4. Gain Predictability and Scalability
- 2.4.5. Control and Audit Dependencies and Releases
- 2.4.6. Deploy 3rd Party Artifacts
- 2.4.7. Collaborate with Internal Repositories
- 2.4.8. Distribute with Public Repositories
- 2.5. Adopting a Repository Manager
- 3. Installing and Running Nexus
- 4. Configuring Maven to Use Nexus
- 5. Using Nexus
- 6. Configuring Nexus
-
- 6.1. Configuring Nexus
- 6.2. Customizing Server Configuration
- 6.3. Configuring Automated Error Reporting Settings
- 6.4. New Version Notification
- 6.5. Managing Repositories
- 6.6. Managing Groups
- 6.7. Managing Routes
- 6.8. Managing Scheduled Services
- 6.9. Managing Security
- 6.10. Network Configuration
- 6.11. Managing Nexus Plugins
- 7. Nexus LDAP Integration
- 8. Nexus Procurement Suite
- 9. Build Promotion with the Nexus Staging Suite
-
- 9.1. Introduction
- 9.2. Using the Nexus Staging Suite
- 9.3. Configuring Staging Profiles
- 9.4. Performing a Staged Deployment with Maven
- 9.5. Uploading a Staged Deployment in Nexus
- 9.6. Managing Staging Rulesets
- 9.7. Managing Staging Repositories in Nexus
- 9.8. Managing Staging Repositories with the Nexus Maven Plugin
- 10. Managing Maven Settings
- 11. OSGi Bundle Repositories
- 12. P2 Repositories
- 13. Deploying Sites to Nexus
- 14. User Account Plugin
- 15. Nexus Atlassian Crowd Plugin
- 16. Artifact Bundles
- 17. Nexus Best Practices
- 18. Developing Nexus Plugins
-
- 18.1. Nexus Plugins
-
- 18.1.1. Nexus Plugin API
- 18.1.2. Nexus Extension Points
- 18.1.3. Nexus Plugin Extension Points
-
- 18.1.3.1. Nexus Plugin Extension
- 18.1.3.2. Nexus Index HTML Customizer
- 18.1.3.3. Static Plugin Resources
- 18.1.3.4. Plugin Templates
- 18.1.3.5. Event Inspectors
- 18.1.3.6. Content Generators
- 18.1.3.7. Content Classes
- 18.1.3.8. Storage Implementations
- 18.1.3.9. Repository Customization
- 18.1.3.10. Item and File Inspectors
- 18.1.3.11. Nexus Feeds
- 18.1.3.12. Nexus Tasks and Task Configuration
- 18.1.3.13. Application Customization
- 18.1.3.14. Request Processing
- 18.2. Using the Nexus Plugin Archetype
- 18.3. Creating a Complex Plugin
- 18.4. Nexus Plugin Descriptor Maven Plugin
- 18.5. Defining Custom Repository Types
- A. Migrating to Nexus from Artifactory
- B. Migrating to Nexus from Archiva
- C. Configuring Nexus for SSL
- D. Creative Commons License
- E. Books Revision History
-
- E.1. Changes in Edition 2.5
- E.2. Changes in Edition 2.4.1
- E.3. Changes in Edition 2.4
- E.4. Changes in Edition 2.3.1
- E.5. Changes in Edition 2.3
- E.6. Changes in Edition 2.2
- E.7. Changes in Edition 2.1
- E.8. Changes in Edition 2.0.1
- E.9. Changes in Edition 2.0
- E.10. Changes in Edition 1.9
- E.11. Changes in Edition 1.8.2
- E.12. Changes in Edition 1.8.1
- E.13. Changes in Edition 1.8
- E.14. Changes in Edition 1.7.1
- E.15. Changes in Edition 1.7
- E.16. Changes in Edition 1.6
- E.17. Changes in Edition 1.5
- E.18. Changes in Edition 1.4
- E.19. Changes in Edition 1.3
- E.20. Changes in Edition 1.2
- E.21. Changes in Edition 1.1
- E.22. Changes in Edition 1.0
- E.23. Changes in Edition 0.9
- E.24. Changes in Edition 0.8
- E.25. Changes in Edition 0.7
- E.26. Changes in Edition 0.6
- E.27. Changes in Edition 0.5
- Index
List of Figures
- 1.1. Sonatype Nexus Feature Matrix
- 3.1. Downloading Nexus Open Source from http://nexus.sonatype.org
- 3.2. Selecting the Nexus Open Source Distribution Download
- 3.3. Downloading Nexus Professional from http://www.sonaype.com/products/download
- 3.4. Default Nexus Administrative Credentials (admin/admin123)
- 3.5. Nexus Application Window (default login/password is admin/admin123)
- 3.6. Script Directory for 32-bit GNU/Linux in ${NEXUS_HOME}/bin/jsw
- 3.7. Nexus Professional Licensing Panel
- 3.8. Nexus Professional End-user License Agreement
- 3.9. License Upload Finished Dialog
- 3.10. Uninstall License Confirmation Dialog
- 3.11. License Uninstall Completed Dialog
- 3.12. The Sonatype Nexus Work Directory
- 3.13. Nexus Professional Configuration Directory
- 4.1. Creating a New Nexus Proxy Repository
- 4.2. Adding a Nexus Repository
- 4.3. Adding New Repositories to a Nexus Group
- 5.1. Nexus Interface for Anonymous Users
- 5.2. Browsing a Nexus Repository
- 5.3. Browsing a Nexus Repository Index
- 5.4. Viewing Artifact Metadata
- 5.5. Editing Artifact Metadata
- 5.6. Browsing a Nexus Group
- 5.7. Browsing a Nexus Group Index
- 5.8. Results of an Artifact Search for "guice"
- 5.9. Configuring Nexus as an OpenSearch Provider
- 5.10. OpenSearch Search Results in Nexus
- 5.11. Nexus Available as an Option in the Firefox OpenSearch Provider List
- 5.12. Searching Artifact Metadata
- 5.13. Metadata Search Results for Custom Metadata
- 5.14. Metadata Search Results for Custom Metadata
- 5.15. Artifact Upload Form
- 5.16. Browsing Nexus System Feeds
- 5.17. Browsing Nexus Logs and Configuration
- 5.18. Selecting the Update Frequency when Tailing a Log File
- 5.19. Changing Your Nexus Password
- 5.20. Generating a Nexus Problem Report
- 6.1. Nexus Server Configuration (File, SMTP, and HTTP Config)
- 6.2. Nexus Server Configuration (Security Settings, Anonymous Access)
- 6.3. Nexus Server Configuration (App Server and HTTP Proxy Config)
- 6.4. Configuring PGP Keyserver Preferences
- 6.5. Configuring the Automated Error Reporting
- 6.6. The Sonatype Issue Tracker
- 6.7. Signing Up for a Sonatype Issue Tracker Account
- 6.8. New Version Notification Settings
- 6.9. Repository Configuration Screen for a Proxy Repository
- 6.10. Repository Configuration Screen for a Proxy Repository
- 6.11. Proxy Configuration Access Settings for a Hosted Repository
- 6.12. Configuring Mirrors for Proxy Repositories
- 6.13. Configuring Mirrors for a Hosted Repository
- 6.14. Repository Summary Panel for a Hosted Repository
- 6.15. Repository Summary Panel for a Proxy Repository
- 6.16. Repository Summary Panel for a Virtual Repository
- 6.17. Configuring Remote Repository Auto Block/Unblock
- 6.18. Group Configuration Screen in Nexus
- 6.19. Routes Configuration Screen in Nexus
- 6.20. Managing Nexus Scheduled Services
- 6.21. Configuring a Scheduled Backup of Nexus Configuration
- 6.22. Managing Security Privileges
- 6.23. Managing Security Privileges
- 6.24. Create, Delete, Read, and Update Privileges Created
- 6.25. Managing Repository Targets
- 6.26. Managing Repository Targets
- 6.27. Managing Security Roles
- 6.28. Managing Security Roles
- 6.29. Managing Security Roles
- 6.30. Managing Security Roles
- 6.31. Managing Users
- 6.32. Nexus User Role Tree
- 6.33. Nexus User Privilege Trace
- 6.34. The Log Configuration Panel
- 6.35. Administrative Menu Link for the Plugin Console
- 6.36. Nexus Plugin Console
- 6.37. Nexus Plugin Console Displaying REST endpoints for a Plugin
- 7.1. Adding the LDAP Authentication Realm to Available Realms
- 7.2. Move the LDAP Authentication Realm to the Top of Selected Realms
- 7.3. LDAP Configuration Option in the Nexus Menu
- 7.4. Connection and Authentication Configuration for LDAP Integration
- 7.5. Configuring User Mapping for LDAP Integration
- 7.6. Group Element Mapping with Dynamic Groups Selected
- 7.7. Configuring Nexus LDAP for Active Directory
- 7.8. Checking the User and Group Mapping in LDAP Configuration
- 7.9. Viewing All Configured Users
- 7.10. All Default Realm Users
- 7.11. All LDAP Users
- 7.12. Search LDAP Users
- 7.13. Mapping the Deployment Role to an External User
- 7.14. Selecting External Role Mapping in the Role Management Panel
- 7.15. Selecting an Externally Managed Role to Map to a Nexus Role
- 7.16. Mapping an External Role to a Nexus Role
- 7.17. Defining Multiple LDAP Servers in Nexus Professional
- 7.18. Use Multiple LDAP Servers in a Failover Scenario
- 7.19. Supporting Multiple LDAP Schemas with Nexus Professional
- 7.20. Setting the LDAP Query Cache Duration (in Seconds)
- 7.21. Setting the LDAP Connection Timeout (in Seconds)
- 7.22. Using User & Group Mapping Templates
- 7.23. Testing a User Login
- 7.24. Supply a User's Login Credentials
- 8.1. Procurement to a Certified Release Repository
- 8.2. Procurement to a Certified Development Repository
- 8.3. Artifact Procurement in the Nexus Menu
- 8.4. Enabling Remote Index Downloads for a Proxy Repository
- 8.5. Verification that the Remote Index has been Downloaded
- 8.6. Adding a Hosted Repository
- 8.7. Adding the "Secured" Hosted Repository
- 8.8. Adding a Procured Repository
- 8.9. Configuring Procurement for a Hosted Repository
- 8.10. Hosted Repository is a Proxy Repository while Procurement is Active
- 8.11. Viewing a Repository in the Artifact Procurement Interface
- 8.12. Denying Procurement for Everything Under a Group
- 8.13. Allowing Access to a Single Artifact in a Denied Group
- 8.14. Viewing the Effect of Composite Procurement Rules on the Tree
- 8.15. Effective Procurement Rules for a Particular Node
- 8.16. Stopping Procurement for a Procured Repository
- 8.17. Stop Procurement Confirmation Dialog
- 9.1. Without the Nexus Staging Suite
- 9.2. With Nexus Staging Suite
- 9.3. Supplying a Description for a Staging Release
- 9.4. Multi-level Staging and Build Promotion
- 9.5. Enterprise Menu after Staging Suite Installation
- 9.6. Adding a Repository Target for com.sonatype.sample
- 9.7. Multi-level Staging and Build Promotion
- 9.8. Editing a Staging Profile
- 9.9. Multi-level Staging and Build Promotion
- 9.10. Configuring a Build Promotion Profile
- 9.11. Assigning the Staging Deployer Role to the deployment user
- 9.12. Uploading a Staged Deployment in Nexus
- 9.13. Creating a Staging Ruleset
- 9.14. Associating a Staging Ruleset with a Staging Profile
- 9.15. Listing Repositories Associated with a Staging Profile
- 9.16. Confirmation and Description Dialog for Closing a Staging Repository
- 9.17. Closed Repository After Selecting Finish
- 9.18. Staging Repository Added to the End of a Repository Group
- 9.19. Viewing Nexus Managed Repositories
- 9.20. Browsing a Staging Repository
- 9.21. Browsing Repository via Staging Profiles
- 9.22. Promoting a Staging Repository
- 9.23. Selecting the Destination Repository for Staged Repository Promotion
- 9.24. Confirmation Dialog for Repository Promotion
- 9.25. Promoting a Staging Repository
- 9.26. Multi-level Staging and Build Promotion
- 9.27. Multi-level Staging and Build Promotion
- 9.28. Releasing, Promoting, and Dropping Build Promotion Profiles
- 9.29. Promoting Multiple Repositories to the Same Build Promotion Profile
- 10.1. The Maven Settings Panel
- 11.1. Creating an OSGi Bundle Proxy Repository
- 11.2. Creating a Hosted OSGi Bundle Repository
- 11.3. Creating a Virtual OSGi Bundle Repository from a Maven Repository
- 11.4. Creating a new OSGi Bundle Repository Group
- 12.1. Creating a P2 Proxy Repository
- 12.2. Creating a new P2 Repository Group
- 13.1. Adding a Hosted Repository
- 13.2. Creating a New Maven Site Repository
- 13.3. Newly Created Maven Site Repository
- 13.4. Adding the Site Deployment Role to the Deployment User
- 13.5. Sample Site Maven Project Web Site
- 14.1. Configuring the User Account Plugin
- 14.2. Sign Up Link Available for All Nexus Users
- 14.3. Nexus Sign Up Form
- 14.4. Nexus Sign Up Confirmation
- 14.5. Nexus Activation Email
- 14.6. Nexus Activation Email
- 14.7. User Interface with only the Base UI Privileges
- 14.8. Selecting Default Roles for New Users
- 15.1. Crowd Menu Link under the Security Section of the Nexus Menu
- 15.2. Crowd Configuration Panel
- 15.3. Crowd Access Settings
- 15.4. Crowd HTTP Settings
- 15.5. Crowd HTTP Proxy Settings
- 15.6. Crowd Miscellaneous Settings
- 15.7. Configuring the Crowd Authentication Realm
- 15.8. Creating a Nexus Crowd Application
- 15.9. Creating a Nexus Crowd Application Connection
- 15.10. Creating a Nexus Crowd Application Directories
- 15.11. Creating a Nexus Crowd Application Authorization
- 15.12. Adding an External Role Mapping
- 15.13. Mapping an External Crowd Group to a Nexus Role
- 15.14. Two Crowd Groups Mapped to Nexus Roles
- 15.15. Crowd Groups for User "brian"
- 15.16. Adding an External User Role Mapping
- 15.17. Locating a Crowd User in the User Role Mapping Dialog
- 15.18. Adding a Nexus Role to a Crowd User
- 16.1. Staging Upload Link
- 16.2. Uploading an Artifact Bundle
- 16.3. Staging Repository Created for Artifact Bundle Upload
- 16.4. Promoting a Staged Repository
- 16.5. Confirmation that Staged Repository has been Promoted
- 18.1. Layout of a Nexus Plugin Project
- A.1. Creating an Artifactory System Export
- A.2. Artifactory Import Panel from the Nexus Migration Plugin
- A.3. Specifying the Artifactory System Backup Path
- A.4. Configuring the Artifactory Import
- A.5. Configuring Artifactory Group Imports
- A.6. Configuring Repositories for Artifactory Import
- A.7. Merging a Proxy Repository During Artifactory Import
- A.8. Configuring Users During Artifactory Import
- A.9. Loading Artifactory Configuration Warning
- A.10. Artifactory Import Scheduled Dialog
- A.11. Viewing the Migration Logs
- B.1. Archiva Managed Repositories
- B.2. Editing an Archiva Managed Repository
- B.3. Creating a Nexus Hosted Respository
- B.4. Rebuilding the Index of a Nexus Hosted Repository
- B.5. Browsing Archiva Remote Repositories
- B.6. Archiva Proxy Connectors
- B.7. Archiva Proxy Connector Settings
- B.8. Creating a Nexus Proxy Repository
- B.9. Adding a Proxy Repository to a Repository Group
- B.10. Defining Nexus Repository Groups
List of Examples
- 4.1. Configuring Maven to Use a Single Nexus Group
- 6.1. Contents of ${NEXUS_HOME}/conf/plexus.properties
- 9.1. Listing the Staging URL in distributionManagement
- 9.2. Listing deployment credentials in Maven Settings
- 9.3. Adding org.sonatype.plugins to pluginGroups in Maven Settings
- 10.1. Adding org.sonatype.plugins to pluginGroups in Maven Settings
- 13.1. Distribution Management for Site Deployment to Nexus
- 13.2. Configuring the Maven Site Plugin for Nexus Site Deployment
- 13.3. Configuring Deployment Credentials for Nexus Site Deployment
- 16.1. Sample POM Containing all Required Bundle Elements
- 18.1. A Simple Event Inspector
- 18.2. VirusScanner Interface
- 18.3. XYVirusScanner Implementation
- 18.4. Virus Scanning Request Processor
- 18.5. The Virus Scanner Repository Customizer
- 18.6. A Nexus Plugin Descriptor
- 18.7. Creating a Custom Repository Type Interface
- 18.8. Creating a Custom Repository Type Implementation
