烦恼岁月

付出总是有回报的 take action follow your heart , or follow your head
posts - 40, comments - 5, trackbacks - 0, articles - 4

使用UMLGraph来生成uml图

Posted on 2010-04-19 23:59 不需要解释 阅读(1857) 评论(0)  编辑  收藏 所属分类: antmaven

    最近在看一些项目的代码,总是发现很少项目提供出uml图,或者就是提供uml图的也有可能并没有和代码对应上,如果有正确的uml图,可以非常方便的为大家更好的理解代码层次逻辑。其实我们可以使用使用UMLGraph来生成uml图,直接使用java代码来生成UMLGraph。对于大部分项目来说,我们一般使用maven和ant(还在使用ant,你out了)来作为项目的编译工具。

    在maven中,我们可以在pom.xml增加:

    <reporting>
        <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.6.1</version>
        <configuration>
          <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
          <!-- <docletPath>/path/to/UmlGraph.jar</docletPath> -->
          <docletArtifact>
            <groupId>org.umlgraph</groupId>
            <artifactId>doclet</artifactId>
            <version>5.1</version>
          </docletArtifact>
          <additionalparam>-views</additionalparam>
          <useStandardDocletOptions>true</useStandardDocletOptions>
        </configuration>
        </plugin>
        </plugins>
    </reporting>

使用javadoc:aggregate 就可以生成出整个项目按照package的uml图了。

如果是使用ant,在build.xml中增加target

   <target name="genuml">
        <property name="uml.dir" value="${basedir}/uml"/>
        <property name="src.uml.dir" value="${src.dir}/uml"/>
        <mkdir dir="${uml.dir}"/>
        <path id="uml.source.path">
           <pathelement path="${src.uml.dir}/"/>
           <pathelement path="${src.java.dir}"/>
        </path>
        <javadoc sourcepathref="uml.source.path" packagenames="*" package="true">
           <doclet name="org.umlgraph.doclet.UmlGraph" path="${basedir}/lib/UmlGraph.jar">
               <param name="-d" value="${uml.dir}"/>
           </doclet>
        </javadoc>
        <apply executable="dot" dest="${uml.dir}" parallel="false">
            <arg value="-Tpng"/>
            <arg value="-o"/>
            <targetfile/>
            <srcfile/>
            <fileset dir="${uml.dir}" includes="*.dot"/>
            <mapper type="glob" from="*.dot" to="*.png"/>
        </apply>
    </target>

注意:要正常使用 UMLGraph,您必须先安装 Graphviz 工具,请自己google相关信息。


只有注册用户登录后才能发表评论。


网站导航:
 
我实话告诉你们,我可是身经百战了.bbs我见的多了,哪个版我没灌过?你们要知道, 一塌糊 涂的triangle,PIC,SEX版,那比你们不知道厉害到哪里去了,我在那谈笑风声.你 们有一好就是无论在哪个版,什么话题都灌,但是灌来灌去的问题,都too simple, sometimes naive!你 们懂不懂呀?啊?所以说灌水啊,关键是要提高自己的知识水平.你 们啊,不要总想着弄个大坑,然后灌上十大,再把我羞辱一番……你们啊,naive!你们这 样灌是不行地!~那你問我支持 不支持灌水,我說支持,我常來這裡灌,你說支持不支持?