And if you use "mvn dependency:tree":

[dependency:tree]
org.apache.cxf:cxf-api:jar:2.2-SNAPSHOT
+- junit:junit:jar:4.4:test
+- org.easymock:easymockclassextension:jar:2.4:test
|  +- org.easymock:easymock:jar:2.4:test
|  \- cglib:cglib-nodep:jar:2.1_3:test
+- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.0.2:compile
+- org.apache.cxf:cxf-common-utilities:jar:2.2-SNAPSHOT:compile
|  +- org.springframework:spring-core:jar:2.5.5:compile
|  +- org.springframework:spring-beans:jar:2.5.5:compile
|  +- org.springframework:spring-context:jar:2.5.5:compile
|  |  \- aopalliance:aopalliance:jar:1.0:compile
|  +- javax.xml.bind:jaxb-api:jar:2.1:compile
|  +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
|  +- wsdl4j:wsdl4j:jar:1.6.2:compile
|  +- xml-resolver:xml-resolver:jar:1.2:compile
|  \- commons-lang:commons-lang:jar:2.4:compile
+- org.apache.ws.commons.schema:XmlSchema:jar:1.4.2:compile
+- com.sun.xml.bind:jaxb-xjc:jar:2.1.9:test
+- com.sun.xml.bind:jaxb-impl:jar:2.1.9:test
+- org.apache.geronimo.specs:geronimo-annotation_1.0_spec:jar:1.1.1:compile
+- 
org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec:jar:2.0.0:provided
+- org.codehaus.woodstox:wstx-asl:jar:3.2.6:compile
+- org.apache.neethi:neethi:jar:2.0.4:compile
|  \- commons-logging:commons-logging:jar:1.1.1:compile
+- org.apache.cxf:cxf-common-schemas:jar:2.2-SNAPSHOT:compile
\- org.apache.cxf:cxf-xjc-dv:jar:2.2-SNAPSHOT:test


And then pull out the "test" and "provided" scoped deps:
org.apache.cxf:cxf-api:jar:2.2-SNAPSHOT
+- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.0.2:compile
+- org.apache.cxf:cxf-common-utilities:jar:2.2-SNAPSHOT:compile
|  +- org.springframework:spring-core:jar:2.5.5:compile
|  +- org.springframework:spring-beans:jar:2.5.5:compile
|  +- org.springframework:spring-context:jar:2.5.5:compile
|  |  \- aopalliance:aopalliance:jar:1.0:compile
|  +- javax.xml.bind:jaxb-api:jar:2.1:compile
|  +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
|  +- wsdl4j:wsdl4j:jar:1.6.2:compile
|  +- xml-resolver:xml-resolver:jar:1.2:compile
|  \- commons-lang:commons-lang:jar:2.4:compile
+- org.apache.ws.commons.schema:XmlSchema:jar:1.4.2:compile
+- org.apache.geronimo.specs:geronimo-annotation_1.0_spec:jar:1.1.1:compile
+- org.codehaus.woodstox:wstx-asl:jar:3.2.6:compile
+- org.apache.neethi:neethi:jar:2.0.4:compile
|  \- commons-logging:commons-logging:jar:1.1.1:compile
+- org.apache.cxf:cxf-common-schemas:jar:2.2-SNAPSHOT:compile


Honesly, I'm not sure if anything there is actually removable.   MAYBE mark 
Neethi as provided, but it would still be pulled in later.   xml-resolve 
could potentially be pulled if we add code to detect it's not there and then 
not support catalogs in that case.

Dan





On Monday 01 December 2008 3:03:08 pm Christian Schneider wrote:
> Hi Benson,
>
> I think a good example is cxf-api. It depends on:
> - neethi
> - cxf-common utilities
> - cxf-common-schemas
> - geronimo-activation
> - geronimo-j2ee-connector_1.5_spec
> - XmlSchema
> - wstx-asl
> - geronimo-annotation_1.0_spec
>
> When you include transitive dependencies it is even worse:
>
> - wsdl4j
> - commons-lang
> - geronimo-stax-api_1.0_spec
> - spring-context
> - jaxb-api
> - xml-resolver
> - spring-beans
> - aopaliance
> - spring-core
> - commons-logging
>
> No one can tell me that an api package needs all this. ;-)
> Most transitive dependencies come from cxf-common-utilities. So I think
> a good starting point would be to try to remove the dependency to
> commons-utilities.
>
> To keep track of dependencies we could do some metrics. For example we
> could track the number of direct and transitive dependencies for each
> module over time. Then we could set the goal for us all to try to lower
> the dependency numbers over time.
>
> Greetings
>
> Christian
>
> Benson Margulies schrieb:
> > Christian,
> >
> > This perhaps ought to move to dev, but ...
> >
> > What exactly do you have in mind when you say, 'clean out'?
> >
> > It might be one of several things.
> >
> > 1) Divorce CXF entirely from some of its dependencies.
> > 2) Document much more carefully what you actually have to have to
> > operate in various popular scenarios.
> > 3) tweak the Maven dependencies so that a vanilla user doing a vanilla
> > build downloads a less stuff?
> >
> > --benson
> >
> >> --
> >>
> >> Christian Schneider
> >> ---
> >> http://www.liquid-reality.de



-- 
Daniel Kulp
[EMAIL PROTECTED]
http://dankulp.com/blog

Reply via email to