Nexus is a powerful and robust Maven repository manager, created to provide reliable access to artifacts required for provisioning and development. 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.
Here are some key features of "Nexus":
· Runs out-of-the-box. Unpack it and go!
· Rich UI using the amazing ExtJS library.
· Full REST APIs made possible using Restlet.
· Full integration with Eclipse using m2eclipse.
· Repository RSS feeds for recently deployed and cached artifacts.
· Full indexing and searching. This also includes searching proxied repositories by integrating Nexus indices hosted by the remotely proxied repositories.
· Tool to convert Proximity configurations to Nexus configurations.
· No database required. Nexus uses the filesystem with Lucene and that's it. Amazing things are still possible.
· Snapshot cleanup
· Advanced Repository Proxying and Hosting
· On-the-fly repository metadata correction: if a proxied repository contains snapshots and releases Nexus removes removes the versions from the metadata that don't match the type or repository you have configured.
· Logical groups: Nexus allows you to logically represent any number of proxied, or hosted repositories as a single group which accessible via a unified URL.
· Artifact request optimization based on groupId or artifactId: You can configure Nexus to not look in certain places for certain artifacts. For example you wouldn't need to search Maven's central repository for your own organization's artifacts.
· Ability to present and proxy Maven 2.x repositories to Maven 1.x clients: this means that you can service all users of Maven 1.x and Maven 2.x in your organization using Nexus.
· Intelligent NFC (not found cache), with the ability to persist NFC cache to disk.
· Ability to check remote peer availability and make a Nexus proxy "offline" automatically (prevent any reach attempt toward unreachable remote repo) HTTP proxy and connection settings may be set globally or per repository. This means Nexus is able to use more than one HTTP proxy simultaneously.
· Flexible Repository aggregation into multiple logical views without duplicating storage on disk.
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 internally generated artifacts.
Proxying a Maven repository brings a number of benefits. For starters, you are going to speed 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.
In addition to the simple savings in time and bandwidth, a repository manager provides an organization with control over what is downloaded by Maven. You can specifically include or exclude certain artifacts from the public repository. Having control over what is downloaded from the central Maven repository is often a prerequisite for using Maven in most organizations which need to maintain very strict control over what dependencies are used throughout the organization. An organization which wants to standardize on a specific version of a dependency like Hibernate or Spring can enforce this standardization by only providing access to a specific version of an artifact in a repository manager. Other organizations might be concerned with making sure that every external dependency has a license compatible with the legal standards of that organization. If a corporation is producing a application which is distributed, they might want to make sure that no one inadvertently adds a dependency on a third-party library which is covered under the GPL license. Repository managers provide for the level of control that an organization needs to make sure that overall architecture and policy can be enforced.
Aside from the benefits of mediating access to remote repositories, a repository manager also provides something essential to full adoption of Maven. Unless you expect every member of your organization to download and build every single internal project, you will want to provide a mechanism for developers and departments to share both SNAPSHOT and releases for internal project artifacts. Nexus provides your organization with such a deployment target. Once you install Nexus, you can start using Maven to deploy snapshots and releases to a custom repository managed by Nexus.
What's New in This Release:
Key Bugs Fixed:
· NX-87 / NX-136 / NX-137 - Connection Error Handling
· NX-321 - Remove Allow Deploy from Proxy Repos
· NX-466 - Timeouts in the reachability check of proxy repos blocks the repo list response (empty repository list in UI)
· NX-491 - Store the checksum files in the repository folder
· NX-537 - set '-Djava.io.tmpdir=../../../runtime/work/tmp' at launch time
· [NEXUS-3] - Password for HTTP proxy is not being masked with "stars" but displayed instead.
· [NEXUS-13] - Indexer Fails to Index all Artifacts
· [NEXUS-17] - Empty repository list
· [NEXUS-24] - Changing Context root log in stops working
· [NEXUS-26] - Feeds subscription don't work when context is changed.
· [NEXUS-31] - When a repository (hosted) is added to the repositories it cannot be grouped until the Nexus server is restarted
· [NEXUS-36] - Proximity Migration App Fails with NPE
· Shutdown script for Mac OSX is fixed.
Enhancements / New Features:
· Maven 1 repository proxy support and addition of M2 Virtual repo to allow M1 data to be grouped with other M2 repositories
· Generate HTML listing of repositories when browsed from a web browser or Maven Wagon
· Separated the Rebuild Attributes from Reindex - rebuild attributes takes longer and reconstructs corrupted Nexus metadata.
· Deployment Password - A new hardcoded user "deployment" can have a password set to restrict write access to all repositories. Full RBAC is coming in beta-4/5
· New Admin functions in the repo maintenance: View on Remote, Delete
· Checksum search capability to identify unknown jars
· [NEXUS-16] - Additional URL parameters should not be mandatory
· [NEXUS-11] - User management
· [NEXUS-29] - Proxying Maven 1 legacy Repositories as a Maven 2 Repo
Upgrade Notes: This release requires an update to the base platform, therefore an upgrade bundle has not been provided. After installing the new bundle, copy the work folder located at /runtime/work and the files located at /runtime/apps/nexus/conf to the new location. After starting the system, run "rebuild attributes" on all hosted repositories. This is done to migrate the checksums to the proper location in the repository data (NX-491 above).