As a first step to fixing our dependencies I'm going to use mvn dependency:analyze to remove unneeded dependencies and add ones directly used but not declared explicitly. I think this is going to remove the specification of dependencies in pom packaging projects.

I found some advice on why to do this here:  
http://www.sonatype.com/book/reference/optimizing.html#d0e6921

If anyone objects please speak up before I get too far.

thanks
david jencks

On Aug 12, 2008, at 11:23 PM, David Jencks wrote:


On Aug 12, 2008, at 6:28 PM, Kevan Miller wrote:


On Aug 12, 2008, at 4:03 PM, David Jencks wrote:


On Aug 12, 2008, at 12:17 PM, Jarek Gawor wrote:

I think we should stop using
<useTransitiveDependencies>true</useTransitiveDependencies> in
car-maven-plugin. It's just pulling in too much stuff and it's hard to control it (see https://issues.apache.org/jira/browse/GERONIMO-4233) .
Looks like only ./framework/configs/gshell-* configs are using that
option.

I've been considering this since I added the setting. IMO it's just revealing problems with our dependency management, not causing them. My goal is to use it everywhere. Here's my half- baked plan:

1. make it so the c-m-p configuration can apply small tweaks to the maven dependencies such as the import classes/services/all setting rather than having to replace the entire maven dependencies set with a near-copy. 2. develop some tooling to compare results with and without useTransitiveDependencies 3. starting with framework, convert all the cars to useTransitiveDependencies=true, adding <exclusions> and changing scopes in dependencies as needed. 4. In server/trunk/plugins (and plugins) convert all out-of-plugin dependencies to dependencies on cars.

Anyone want to help with this?

Sounds like a recipe for including a bunch of stuff that we don't want or need...

Can you elaborate on why you think it's better to opt out, rather than opt in?

I'm suggesting 2 things:

1. fix our dependencies so they are correct. This, by itself, will make useTransitiveDependencies=true work properly. Any problems such as unwanted inclusions are bugs that have a good chance of producing highly undesirable behavior in maven if they haven't already done so. 2. make the build-time classpath match the run-time classpath by using the cars to aggregate their dependencies in maven, just like they do in the running geronimo server. This should dramatically reduce the number of dependencies in most of the plugin poms.

thanks
david jencks


--kevan


Reply via email to