【问题标题】:UmlGraphDoc Errors running Graphviz on运行 Graphviz 的 UmlGraphDoc 错误
【发布时间】:2014-06-03 01:53:27
【问题描述】:

我尝试使用 UmlGraphDoc,但是,每次我运行 javadoc 命令时,都会收到一个奇怪的错误:

[javadoc] javadoc: warning - Errors running Graphviz on /private/tmp/test/docs/Class1.dot
[javadoc] Building Context view for class Fail
[javadoc] javadoc: warning - Errors running Graphviz on /private/tmp/test/docs/Class2.dot

我的代码是这样的:

import externalPackage.TestClass;

public abstract class Class1 {
    private TestClass myFail;

    public boolean doSomething(TestClass fail) {
        return true;
    }
}

public class Class2 extends Class1 {
    @Override
    public boolean doSomething(TestClass fail) {
        fail.toString();
        return false;
    }
}

构建.xml

<project name="de.matt3o12.test" default="javadocs">    

    <path id="lib">
        <fileset dir="lib">
            <include name="**/*.jar" />
        </fileset>
    </path>

    <target name="javadocs">
        <javadoc verbose="true" destdir="docs" public="true">
            <classpath>
                <path refid="lib" />
                <path path="${javac.classpath}" />
            </classpath>
            <fileset dir="src">
                <filename name="**/*.java" />
            </fileset>

            <doclet name="org.umlgraph.doclet.UmlGraphDoc" path="lib/UMLGraph.jar">
                <param name="-inferrel"/>
                <param name="-inferdep"/>
                <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"/>
                <param name="-link" value="http://java.sun.com/j2se/1.5.0/docs/guide/javadoc/doclet/spec"/>
                <param name="-link" value="http://java.sun.com/j2se/1.5/docs/api"/>
            </doclet>
        </javadoc>
    </target>
</project>

我正在使用 Mac OS X Lion 和 Mavericks。我的小牛电脑上的点版本是dot - graphviz version 2.38.0。这是最新的二进制包下载。
这是zip file,其中包含我用来生成此错误的所有类(和库)。当你运行 ANT 脚本时,会产生类似上面的错误。文档看起来不错(甚至是 UML 图),但是,在我更大的项目(我首先得到错误的地方)中,一些生成错误的图不起作用


这些错误仅在以下情况下发生:

  • TestClass 位于外部包中(包含该类的 jar 定义在类路径中。javac 完美运行)。
  • doSomething 被覆盖
  • 私有变量myFail 已设置。

如果myFail 被删除,或者doSomething 没有被覆盖(例如,它没有在Class1 Class2 中定义),或者TestClass 在同一个包中,则不会出现错误发生。

【问题讨论】:

  • 如果可以的话,发布一些调试输出可能是个好主意。 Graphviz 究竟会抛出什么样的错误?您还可以发布点文件的内容。
  • 我刚刚在 Windows 8.1 上进行了尝试,还使用了新安装的 GraphViz 2.38。我对与您类似的设置没有任何问题。不过,我必须承认我不是 Ant 用户。所以我在这个测试中使用了一个 Maven 插件。
  • @kriegaex 你能用我添加到我的帖子中的 ZIP 存档(使用 ANT)测试它吗?也许这是一个mac错误......我如何获得调试输出?我已经将 javadoc 设置为详细,但 javadoc 提供的信息似乎不相关。

标签: java uml dot umlgraph


【解决方案1】:

我能够重现该问题。它与 Mac 无关,而是由 UMLGraph 源代码中的单个空格字符引起的细微错误。它已经在 Git master(开发版)中修复。我通过克隆UMLGraph repo 并将其与之前的版本(标签 R5_6_6)一分为二发现了这一点。我通过使用 Maven 构建库并使用您的 Ant 项目运行每个二等分的构建来做到这一点。最后我发现commit @8d77597 解决了这个问题。

底线:只需从 GitHub 克隆存储库并构建快照版本,那么您的问题应该就消失了。我将在此处打开一个链接到此页面的问题,并代表您要求发布错误修复。

更新:这是ticket 要求发布新的错误修复版本。为你祈祷……

【讨论】:

  • 听起来很费劲!非常感谢!为此,您将获得全部赏金!
  • 我已经更新了项目网站和 Maven 中心上可用的构建版本。对于延误,我深表歉意。
猜你喜欢
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 2016-05-05
  • 2011-02-07
  • 2016-08-21
  • 2021-10-15
  • 2016-10-10
  • 1970-01-01
相关资源
最近更新 更多