geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Dillon <>
Subject Extension to install custom proxy muck in Maven?
Date Fri, 23 Feb 2007 09:47:15 GMT
Is it possible to install a Maven extension which can configure  
Maven's proxy handling?

I'm wondering if with little work, that it might be possible to  
create some kinda of plugin to Maven, which would embed a simply  
proxy server (kinda like DSMP) directly into Maven, and then  
configure Maven to use that server as a proxy.

I really need a way to control what repos our projects use, and since  
we use artifacts which list other repos, there is no easy way (that I  
know of) to limit this behavior except for configuring a proxy and  
putting the controls in the proxy process.

The problem with this technique is that it...

a) requires users' to configure maven to use the proxy

b) requires users to start a proxy process and/or point at a remote  
server, in which case you need a remote server and bandwidth to  
effectively use.

Both of these end up becoming blockers to actually making this a  
reality.  But, Maven is a Plexus application, and its easy enough to  
write a Plexus component which implements this proxy, so why not have  
the one Maven process boot up the proxy, and then configure Maven to  
use that proxy?  This seems to me the best way, short of major  
changes to Maven, to get real concrete control over how Maven uses  
remote repositories.

For the case at hand, what I really want is to, no matter what repos  
are configured (by the project or by dependencies of the project),  
only grab artifacts from one repository... and to help populate/ 
maintain that repository, flip a switch on the proxy component to all  
it to pass-through to all configure urls for artifacts.

There are a few other use cases I can think of... I'd like to install  
a listener into the proxy component which will simply catalog all  
artifact requests and at the end of a build simply dump a list of all  
artifacts which were used.  Another, is that for some automated  
builds, I need to keep the "cache" of artifacts separate from the set  
of artifacts which are actually used by a project.  This isn't'  
really possible now, but with a proxy layer, I can easily separate  
cached artifacts from artifacts used in a project.

  * * *

Anyways... I really think that having this extra proxy component in  
the Maven process would be a massive help to solve some of the more  
complicated repository issues which we (Geronimo) are facing with  
using Maven.  I think that if I could get a proxy component into the  
Maven bootstrap, and provide some ability for the project to  
configure it, that it would really help improve the quality of our  
builds with Maven.

I also don't think its that difficult to implement... the major issue  
is... how does one install such a bootstrap component into Maven?  Is  
it possible?  Or does one need to provide a separate assembly with  
extra libs and extra components.xml or something along those lines?


View raw message