我正在尝试找到一个工具/框架/插件,它允许我在我的javadocs注释中绘制UML图。我不需要逆向工程自动化UML图片(由UMLGraph和其他人有效提供)。我希望能够创建自己的自定义图表。你能建议一下吗?
答案 0 :(得分:1)
我尝试了3种方法,使用maven-javadoc-plugin和doclets在JavaDocs中生成UML Diagrams:
1)UmlGraphDoc
2)apiviz
3)yworks
我可以说最好的是选项3,这是因为它是唯一一个不需要在开发电脑中安装的东西。
对于UmlGraphDoc和apiviz(两个doclet),他们需要在PC中安装GraphViz。
安装它并配置maven-javadoc-plugin很简单,但由于它们需要一个单独的应用程序,它会使UML生成变得有点脏,因为如果你想将uml生成包含在你的maven生命周期中,那么所有其他开发人员需要安装GraphViz(我真想避免的依赖)。
无论如何,这个链接有我遵循的方法,使用yworks(它确实有效):
如下所示我的3次尝试配置,以防你想确认哪一个更好:
需要安装graphviz-2.38( google it,很容易找到) 图表很难看,但可以理解!!
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.2</version>
<reportSets>
<reportSet>
<id>uml</id>
<reports>
<report>javadoc</report>
</reports>
<configuration>
<name>uml</name>
<destDir>uml</destDir>
<quiet>true</quiet>
<aggregate>true</aggregate>
<show>private</show>
<doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
<docletArtifact>
<groupId>org.umlgraph</groupId>
<artifactId>umlgraph</artifactId>
<version>5.6.6</version>
</docletArtifact>
<additionalparam>
-inferrel -inferdep -quiet -hide java.* -hide org.eclipse.* -collpackages java.util.* -postfixpackage
-nodefontsize 9 -nodefontpackagesize 7 -attributes -types -visibility -operations -constructors
-enumerations -enumconstants -views
</additionalparam>
<useStandardDocletOptions>true</useStandardDocletOptions>
</configuration>
</reportSet>
</reportSets>
</plugin>
还需要安装graphviz-2.38( Google it,很容易找到) 生成的图表比第一个选项更好......
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.5</version>
<configuration>
<name>JavaDocUML</name>
<destDir>uml</destDir>
<doclet>org.jboss.apiviz.APIviz</doclet>
<stylesheetfile>${basedir}/src/main/resources/javadoc/javadoc-stylesheet.css</stylesheetfile>
<docletArtifact>
<groupId>org.jboss.apiviz</groupId>
<artifactId>apiviz</artifactId>
<version>1.3.2.GA</version>
</docletArtifact>
<useStandardDocletOptions>true</useStandardDocletOptions>
<charset>UTF-8</charset>
<encoding>UTF-8</encoding>
<docencoding>UTF-8</docencoding>
<breakiterator>true</breakiterator>
<version>true</version>
<author>true</author>
<keywords>true</keywords>
<additionalparam>
-sourceclasspath ${project.build.outputDirectory}
</additionalparam>
</configuration>
</plugin>
图表更易理解,更宽广:D 它不需要在你的电脑上安装任何东西,你只需要从它的网站下载yworks-uml-doclet-3.0_02-jdk1.5并将它放在你的pom.xml附近,并使用相对路径你可以找到它并使用它它如下:
<properties>
<yworks.uml.path>${basedir}\..\..\tools\yworks-uml-doclet-3.0_02-jdk1.5</yworks.uml.path>
</properties>
.
.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.2</version>
<configuration>
<name>JavaDocUML</name>
<destDir>uml</destDir>
<!-- Doclet -->
<doclet>ydoc.doclets.YStandard</doclet>
<docletPath>${yworks.uml.path}/lib/ydoc.jar:${yworks.uml.path}/resources:${basedir}/target/your.application.jar</docletPath>
<additionalparam>-umlautogen</additionalparam>
<useStandardDocletOptions>true</useStandardDocletOptions>
<!-- bootclasspath required by Sun's JVM -->
<bootclasspath>${sun.boot.class.path}</bootclasspath>
<!-- General Javadoc settings -->
<doctitle>${project.name} (${project.version})</doctitle>
<show>private</show>
<!-- Styling -->
<stylesheetfile>${basedir}/src/main/resources/javadoc/javadoc-stylesheet.css</stylesheetfile>
<docfilessubdirs>true</docfilessubdirs>
<!-- Apple's JVM sometimes requires more memory -->
<additionalJOption>-J-Xmx1024m</additionalJOption>
<verbose>true</verbose>
</configuration>
</plugin>
答案 1 :(得分:0)
实际上,您提到的相同UMLGraph包含Javadoc工具的备用doclet,它将生成UML图作为Javadoc创建的一部分。我在这里找到了这个信息:http://wiki.wsmoak.net/cgi-bin/wiki.pl?UMLGraph