[ajug-members] Internal Maven remote repositories

Jason Chambers tooger at bellsouth.net
Tue Feb 20 07:55:03 EST 2007


I'm looking for some Maven expertise out there.

Maven has a great concept of repositories. There are two types of  
repositories - local and remote. Freshly installed out of the box,  
your local repository contains nothing but as Maven gets put to work,  
it gets populated with any dependencies it may be missing. Let's say  
your project depends on Spring. When you build your project, Maven  
will check your local repository first to see if Spring is there. If  
not, it pulls it down from a remote repository (by default this is  
http://repo1.maven.org/maven2 I believe) . The next time you do a  
build, it becomes much quicker because Spring is already cached in  
the local repository.

Now, your project is itself a dependency required by another project.  
So, you 'mvn install' and this action puts the target (e.g. Jar) into  
the local repository making it visible to you and your other projects  
you may be working on.

Further along in development, you are ready to share the components  
you have built with the rest of the team so they can build and run  
against it. This is performed using 'mvn install'. However, you don't  
have access to install to the remote repository - and you're probably  
working on non open source stuff anyway so you probably don't want to  
publish this out to the world anyway.

So, before you know it you are at the point where you need an  
internal remote repository. Something that sits behind the firewall  
between the remote repositories and the development team.

My question is simply, what is the best approach to setting up this  
internal remote repository? Do you use a mirror of repo1? Do you shut  
off access to the remote repositories? Do you use a maven proxy? If  
so, which one? http://maven-proxy.codehaus.org/ http:// 
proximity.abstracthorizon.org/

Jason



More information about the ajug-members mailing list