views:

36

answers:

3

I understand that part of the appeal of setting up a Maven mirror, such as the following:

<mirror>
  <id>nexus</id>
  <name>Maven Repository</name>
  <mirrorOf>*</mirrorOf>
  <url>http://server:8081/nexus/content/groups/public&lt;/url&gt;
</mirror>

... is that the documentation states, "You can force Maven to use a single repository by having it mirror all repository requests." However, is this also an indication that by having a * mirror set up each workstation [b]must[/b] be forced to go through the mirror?

I ask because I would like each workstation to failover and connect directly to whatever public repositories it knows about in the event that Nexus can't resolve a dependency or plugin. (In a perfect world, each developer has the access necessary to add additional proxy repositories as needed. However, sometimes that access isn't available; sometimes the Nexus server goes down; sometimes it suffers a Java heap error.)

Is this "mirror but go ahead and connect directly to public repos" failover configuration possible in Maven 2? Will it be in Maven 3?

+1  A: 

One answer (implicit in my question) is that this isn't possible by design. The comment at the end of this ticket by Jason Van Zyl indicates that

The real mirror is not checked on purpose. The way repository managers work these days would break severely if we started doing this.

Justin Searls
+1  A: 

No, there's no failover mode. You can exclude some repositories from ever going to the mirror with <mirrorOf>*,!repository</mirrorOf>, or you can have two settings.xml files that will behave differently and switch using --settings if needed.

Brett Porter
+1  A: 

It's not possible in Maven 2. It may be possible in the future in Maven 3. We have also considered adding this possibility in Nexus to dynamically proxy artifacts. The bottom line is that most organizations want control over the proxy repos used by developers and so this feature turns out to be very popular in a repo manager.

For the same reason, having developer machines directly fall back from accessing the repo manager to the repos directly is not desirable. Then you end up losing all the benefits of proxy caching, sharing, filtering etc that you get.

Brian Fox
I'd at least appreciate a dynamic proxy feature in Nexus for this reason.
Justin Searls
You can vote here: https://issues.sonatype.org/browse/NEXUS-2971
Brian Fox