I'm trying to use indirection again to implement "Don't Repeat
Yourself" but I'm stuck and need some expert help.

I have created a custom artifact type, and now I'm trying to figure
out how to get it to behave "a little more" like the stock jar
artifact type.

A concrete example of the problem is this:

I have several modules that may be shipped in varying combinations,
all of which depend on the same JDBC drivers. One requirement has been
that we make the JDBC drivers field-updateable, so I've factored out
the collection of JDBC drivers, and created an "installer" package
type and a mojo that reuses maven-assembly-plugin to build a tarball
that includes an install.sh that puts them in the right place on the
appliance.

Now, I have webapps and other servers that are installed in various
places on the appliance, that depend on the JDBC drivers, and I want
to express these dependencies as a dependency on the "jdbc-installer"
artifact, and my expectation is that the webapp and other servers'
compile classpaths get all of "jdbc-installer" dependencies (the
actually driver jars). That's where the "Don't Repeat Yourself" comes
into play: now, if Oracle ships a new ojdbc15.jar, I only have to
update my jdbc-installer, and all of it's dependents notice the change
"magically".

Except for one problem: my custom artifact type's dependencies don't
get added to the webapp's compile classpath.

I've looked at DefaultArtifactHandler to see if I could solve the
problem by subclassing that, but it doesn't appear to be helpful. I
wonder if anyone can tell me where to look to extend Maven's classpath
builder to take my installer's dependencies.

This whole exercise - creating the custom artifact type - has felt to
me like something that should be part of Maven, "out of the box". The
only conclusion I can draw is that I'm misunderstanding something
that's fundamental to Maven. Please help me see what I'm missing.

TIA,
--
Tommy

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to