While at ApacheCon last week, I talked to Jarek Gawor a bit and then followed
up with a quick conversation with Brett about a problem that is soon going to
hit CXF/Axis2/Geronimo.
Basically, we're going to need a mechanism to easily "endorse" a few api jars
when we call javac and when surefire runs. I'm ok with limiting the
endorsing to when those plugins are in their "fork" mode. There are a few
options that could be pursued:
1) Require all developers to drop some jars in jre/lib/endorsed. That really
sucks. Not exactly viable, IMO.
2) Require all devs to copy the jars someplace and add -Djava.endorsed.dirs=..
to their MAVEN_OPTS. Also sucks.
3) In all modules, configure dependency:copy to copy the artifacts into a dir
in target, then add the -D thing as system flags for compiler plugin and
surefire. This is better than (2) as it can be all automatic in the poms, but
it's a ton of configuration if dealing with a lot of poms and projects and
such.
4) Add some mechanism to compiler and surefire (and maybe others) to do some
of (3) automatically. I'm thinking something like:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<endorsedArtifacts>
<endorsedArtifact>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>....</version>
</endorsedArtifact>
</endorsedArtifacts>
</configuration>
</plugin>
and similar configuration for surefire. Maybe make <version> optional and it
would pick up a version from a dependency.
5) Maybe some extension to the ToolChains stuff (which I don't know enough
about, need to dig further if this is viable) to handle this.
Anyway, does anyone have any other thoughts?
--
Daniel Kulp
[email protected]
http://www.dankulp.com/blog
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]