Sometimes we may need to generate UML diagrams from source codes. Here’s what I do for Java code: graphviz + ant + UMLGraph. Details below:
1. Install graphviz and ant, download UMLGraph from http://www.umlgraph.org/
2. Place UMLGraph.jar in your project, for example, under
lib/
3. Write or modify your ant script, for example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
<project name="Proxy" default="javadocs" basedir="."> <description> The specification for the Java-based umlgraph build processes. </description> <!-- set global properties for this build --> <property name="src" location="src"/> <property name="build" location="bin" /> <property name="javadoc" location="javadocs" /> <property name="lib" location="lib" /> <!-- import environment variables --> <property environment="env" /> <target name="init"> <!-- Create the time stamp--> <tstamp /> <!-- Create the build directory structure used by compile --> <mkdir dir="${build}" /> <mkdir dir="${lib}" /> <mkdir dir="${javadoc}" /> </target> <target name="compile" depends="init" description="compile the source, build library "> <javac srcdir="${src}" destdir="${build}" debug="true" deprecation="true"> <classpath> <pathelementpath="${classpath}" /> <fileset dir="lib"> <include name="*.jar" /> </fileset> </classpath> <compilerarg value="-Xlint" /> </javac> </target> <target name="javadocs" depends="compile"> <javadoc sourcepath="${src}" packagenames="com.nomadiclab.*" destdir="${javadoc}"private="true"> <doclet name="org.umlgraph.doclet.UmlGraphDoc" path="${lib}/UmlGraph.jar"> <param name="-all" /> <param name="-inferrel"/> <param name="-inferdep" /> <param name="-collapsible" /> <param name="-hide" value="java.*"/> <param name="-collpackages" value="java.util.*" /> <param name="-qualify" /> <param name="-postfixpackage"/> <param name="-nodefontsize" value="9" /> <param name="-nodefontpackagesize" value="7" /> </doclet> </javadoc> </target> </project> |
4. Run this ant script.
1 |
ant javadocs |
5. You will get the UML class diagram as expected in the generated Java docs. Here’s one example (click to enlarge):
Leave a Comment