19

我正在创建一个自定义 doclet,我想使用 Javadoc 插件在我的 Maven 构建中运行,但现在我想在 Eclipse 中测试/调试 Doclet。我怎样才能做到这一点?

我必须以编程方式调用 javadoc 吗?如何?

4

3 回答 3

16

您可以简单地在您的 doclet 中创建一个 main 方法并调用(例如,请参阅完整的 cmdling 参考):

public class MyDoclet extends Doclet {

    public static void main(String[] args) {
        com.sun.tools.javadoc.Main.execute("-doclet " + MyDoclet.class.getName());
    }
}

这也适用于调试器。

您可能还必须添加包含解析实际代码所需的所有 jar 依赖项的 -classpath 参数。

于 2011-09-30T08:43:51.867 回答
2

如果您运行的是 JDK v1.8,则可能需要使用以下代码片段:

Main.execute(docletFqcn.getClass().getClassLoader(), "-doclet", docletFqcn, javaSourceFilePath);

wheredocletFqcn是 Doclet 类的全限定类名和javaSourceFilePath要处理的 Java 文件的位置。

于 2018-08-20T16:45:36.310 回答
0

我收到@Jan 回答的错误消息

Error:(13, 35) java: reference to execute is ambiguous
  both method execute(java.lang.String...) in com.sun.tools.javadoc.Main and method execute(java.lang.String,java.lang.String...) in com.sun.tools.javadoc.Main match

更改这些代码后,它运行良好

com.sun.tools.javadoc.Main.execute(new String[]{
                "-doclet", CustomDoclet.class.getName(),
                "path/to/src/XXX.java"
        });
于 2018-02-02T04:28:18.143 回答