D Analyzing a project’s dependencies with JDeps


This appendix covers:

  • what JDeps is and how it operates
  • analyzing a project and its dependencies
  • configuring output to show just the information you seek
  • how JDeps can help with modules

JDeps is the Java Dependency Analysis Tool, a command-line tool that processes Java bytecode, meaning .class files or the JARs that contain them, and analyzes the statically declared dependencies between classes. The results can be filtered in various ways and can be aggregated to package or JAR level. JDeps is also fully aware of the module system.

All in all it is a very useful tool to examine the various, sometimes nebulous graphs I have been talking about so much in this book. More than that, it has concrete applications when migrating and modularizing a project, like analyzing its static dependencies on JDK-internal APIs (section 7.1.2), listing split packages (section 7.2.5), or drafting module descriptors (section 9.3.2).

D.1  Getting to know JDeps

D.2  Including dependencies in the analysis

D.3  Configuring JDeps' output

D.4  Drilling deeper into your project’s dependencies

D.5  JDeps understands modules

D.6  Summary