Yes... dang it! ;-)
--jason
On Feb 23, 2007, at 6:05 AM, Sachin Patel wrote:
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