如何在 Eclipse 中调试 Doclet?

发布于 2024-11-05 22:06:10 字数 130 浏览 4 评论 0原文

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

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

I am creating a custom doclet that I want to run in my Maven build with the Javadoc plugin, but right now I'd like to test / debug the Doclet in Eclipse. How can I do that?

Do I have to invoke javadoc programmatically? And how?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

云归处 2024-11-12 22:06:10

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

public class MyDoclet extends Doclet {

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

这也适用于调试器。

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

you can simply create a main method in your doclet and call (example, see full cmdling reference):

public class MyDoclet extends Doclet {

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

That also works with the debugger.

You might also have to add the -classpath parameter containing all jar dependencies needed to parse the actual code.

南街女流氓 2024-11-12 22:06:10

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

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

其中 docletFqcn 是 Doclet 类的完全限定类名,javaSourceFilePath 是要处理的 Java 文件。

If you are running JDK v1.8, you may need to use the following code snippet:

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

where docletFqcn is the fully qualified class name of your Doclet class and javaSourceFilePath the location of the Java file to process.

超可爱的懒熊 2024-11-12 22:06:10

我收到了 @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"
        });

I got error message with @Jan answer

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

After change to these code and it work well

com.sun.tools.javadoc.Main.execute(new String[]{
                "-doclet", CustomDoclet.class.getName(),
                "path/to/src/XXX.java"
        });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文