Did you intend for this to go to the geronimo or maven list?
-sachin
On Feb 23, 2007, at 4:47 AM, Jason Dillon wrote:
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?
--jason