[kepler-dev] Jar dependencies in Kepler.

Kevin Ruland kruland at ku.edu
Thu Oct 6 09:56:18 PDT 2005


Hi all.

I've hacked together some code to determine the dependencies among the
jars & classes in kepler.  The analysis is dependent on the order of the
jars analyzed - just like the java classloader.  It does detect if the
same class appears in multiple jars and it only reports a dependency to
the first jar containing the class.  You will see some wierd things in
here because of the fact that we have the same classes in multiple jars.

The tool is limited in that it does not detect dependencies which are
generated at runtime through reflection.  This is a purely static
analysis based on types included in the java source.  If there is a
variable or constant or static method invoked from a class, the
dependency is detected.  It does not dig into string constants and try
to find java class names.

I've run it using the same classpath that eclipse is configured with. 
This is different from the order used by ant dev-run.  The dev-run
target builds the classpath recursively including all the jars (even
those which are clearly not needed) and further the developer does not
have explicit control over jar ordering.

In particular the following jars have been excluded from analysis
because I'm very much convinced they are not needed for runtime or are
duplicates of other jars in the classpath.

jar/apache/servlet.jar
jar/apache/xml-apis.jar
jar/sms/commons-logging.jar
jar/axis-ant.jar
jar/cog-tomcat.jar
jar/commons-httpclient-2.0-r2.jar (removed after my pending changes are
committed)
jar/cos.jar
jar/jama_customer.jar
jar/jaxb-libs.jar
jar/jaxb-xjc.jar
jar/lib4j-1.2.7.jar

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: dependencies.txt
Url: http://mercury.nceas.ucsb.edu/ecoinformatics/pipermail/kepler-dev/attachments/20051006/03a6604c/dependencies-0001.txt


More information about the Kepler-dev mailing list