<分区>
我正试图找到一个工具/框架/插件,允许我在我的 javadocs 注释中绘制 UML 图。我不需要逆向工程的自动化 UML 图片(由 UMLGraph 和其他人有效提供)。我希望能够创建自己的自定义图表。你有什么建议吗?
<分区>
我正试图找到一个工具/框架/插件,允许我在我的 javadocs 注释中绘制 UML 图。我不需要逆向工程的自动化 UML 图片(由 UMLGraph 和其他人有效提供)。我希望能够创建自己的自定义图表。你有什么建议吗?
最佳答案
我尝试了 3 种方法,使用 maven-javadoc-plugin 和 doclets 在 JavaDocs 中生成 UML 图:
1) UmlGraph文档
2) 应用程序
3) 工作
我可能会说最好的是选项 3,这是因为它是唯一不需要在开发电脑上安装任何东西的选项。
对于 UmlGraphDoc 和 apiviz(都是 doclet),他们需要在 PC 中安装 GraphViz。
安装它并配置 maven-javadoc-plugin 很容易,但由于它们需要一个单独的应用程序,它会使 UML 生成有点脏,因为如果你想将 uml 生成作为你的 maven 生命周期的一部分,所有其他开发人员将需要安装 GraphViz(我真正想避免的依赖项)。
无论如何,这个链接有我遵循的方法,使用 yworks(它确实有效):
如下我的3次尝试配置,以防万一你自己确认哪个更好:
需要安装graphviz-2.38(google一下,很容易找到) 图表很丑陋,但可以理解!!
<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(谷歌一下,很容易找到) 生成的图表比第一个选项更好...
<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>
关于java - 如何在 Java 文档中绘制 UML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4597046/