The nexus indexer has become fairly popular, and is the de-facto standard when it comes to indexing maven repositories (including the big boy, central). As repositories grow and grow, the index of artifacts grows right along with them. What was initially a small few hundred kilobyte file, will grow into 20-30 megabytes or more over time. Seeing as the index is the gateway into the contents of a repository (not for maven mind you, but for users), this is the most downloaded file, and a 20mb file being downloaded by thousands of people every day, the bandwidth costs can get pretty high. To combat this, we have introduced incremental index handling into the nexus indexer. There are 2 parts to this, building the incremental indexes for consumers to download, and retrieving the incremental indexes from a provider. Continue reading
What is a Repository Manager?
- A proxy for remote repositories which caches artifacts saving both bandwidth and time required to retrieve a software artifact from a remote repository, and
- A host for internal artifacts providing an organization with a deployment target for software artifacts.
In addition to these two core features, a repository manager also allows you to manage binary software artifacts through the software development, quality assurance, and production release lifecycle. In addition to these core features, a repository manager can search software artifacts, audit development and release transactions, and integrate with external security systems such as LDAP. A repository manager is a powerful tool that encourages collaboration and provides visibility into the workflow which surrounds binary software artifacts.
There are many mirrors of the Central repository out there, but they are mostly under-utilized. I believe this occurs for two reasons:
- Users don’t know they exist – it’s not easy to find a good source for these URLs and locations.
- Users don’t have confidence in the mirrors – They don’t know how frequently they are updated, and don’t have an easy way to validate they are the same files that exist on Central.
In Nexus 1.3, we have introduced new functionality to solve both of those problems.
In this short, two-minute excerpt from my interview with Brian Fox, he describes the steps Sonatype took to mitigate the load and bandwidth problem which were affecting the Central Maven Repository late last year. While short, this audio contains some very useful information for anyone facing similar traffic problems. You’ll hear him talk about the switch from Apache httpd to nginx.
[media id=3 width=320 height=70]
I get this question frequently so it is time to write down my thoughts on the answer so I can stop repeating myself. Here’s the question:
Should I put the urls to my repositories in my poms or in my settings?
The short answer is: settings.
The long answer is: it depends.
There are two scenarios to consider here. Enterprise software (generally not published externally) and public software. Lets take Enterprise software first. Continue reading this post for a full explanation of both scenarios. Continue reading