Here’s a usefull tool: using JarJar you can easily find all the dependencies between the jar files you use. I’ve added a JarJar target to my ant build file to display these dependencies:
<path id="classpath">
<fileset dir=".">
<include name="**/*.jar"/>
</fileset>
</path>
…
<target name="show.dependencies">
<property name="lib.classpath" refid="classpath"/>
<java jar="tonic/jarjar/0.6/jarjar.jar" fork="true">
<arg value="–find"/>
<arg value="–level=jar"/>
<arg value="${lib.classpath}"/>
</java>
</target>
Running this target result in the following output:
...
[java] ...oracleadf10.1.2adfm.jar -> ...oraclejdbc10.1.4ojdbc14.jar
[java] ...oracleadf10.1.2adfm.jar -> ...saxsax2.0.1sax.jar
[java] ...oracleadf10.1.2adftags.jar -> ...sunservlet2.3servlet.jar
[java] ...oracleadf10.1.2adftags.jar -> ...oraclebc4j10.1.2bc4jhtml.jar
[java] ...oracleadf10.1.2adftags.jar -> ...oraclebc4j10.1.2bc4jmt.jar
[java] ...oracleadf10.1.2adftags.jar -> ...oracleadf10.1.2adfm.jar
[java] ...oracleadf10.1.2adftags.jar -> ...oracleadf10.1.2adf-controller.jar
[java] ...oraclebc4j10.1.2bc4jct.jar -> ...oraclebc4j10.1.2bc4jmt.jar
[java] ...oraclebc4j10.1.2bc4jct.jar -> ...suncollections1.0collections.jar
...