问题标签 [doclet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
255 浏览

java - 是否有可用于在 Javadoc 中嵌入 Graphviz DOT 代码的 doclet?

经过一番搜索,我发现了很多使用 Graphviz 自动生成 UML 类图的 doclet、Maven 插件等。

但是,我正在寻找一个 doclet,我可以使用它来将我自己的 DOT 代码嵌入到我的 Javadoc 中,主要用于包括序列图和类似的东西。

这样的工具存在吗?

这是我正在寻找的示例:

我知道我可以直接嵌入 Graphviz 图像,但我希望 DOT 代码与 Java 代码本身一起受版本控制。

0 投票
1 回答
213 浏览

java - Maven:依赖驱动的 javadoc 聚合和自定义 doclet

我准备了一个非常简单的演示,说明我想在更大范围内做什么来演示这个问题:

配置:java 1.8、maven 3.3.9、maven-javadoc-plugin 3.0.1

我有 Maven 工件 testA、testB 和 testC。组件 testA 是一个 javadoc 聚合器项目。B 类(位于 testB 组件中)导入并实例化 C 类(位于 testC 组件中)。

testA 直接依赖于 testB,而 testB 直接依赖于 testC(都提供了范围),因此 testA 对 testC 有传递依赖。

此外,B 类使用自定义 javadoc 标记进行标记。

由于我没有编写 doclet 的经验,所以我使用了在 Internet 上找到的一个 doclet,并根据我的需要对其进行了修改(基本上我只是重写了 exclude 方法以仅包含包含自定义标记的类文档)。

如上所述,testA 是一个聚合器,旨在仅从直接(非传递)依赖项中收集依赖源,并仅为标记类生成 javadoc。这需要任何直接依赖项在构建期间捆绑其源代码,因此我使用 maven-source-plugin 从组件 testB 生成源工件。

现在,问题是,当我运行 maven javadoc 插件时,它在此异常上失败:

例外是指这一行:

似乎没有要处理的包裹。但是,我确信 doclet 在单个组件上执行时会按预期工作(非聚合使用,在没有 maven 的情况下尝试 - javadoc cmd)。当我使用标准 doclet 时,整个聚合也可以工作,但这对我没有用,因为我真的只需要包含标记的类。

这是我的聚合器的 POM.xml:

我究竟做错了什么?有人可以帮我吗?

0 投票
1 回答
651 浏览

java - Java 8 - 使用 Doclet 的自定义 JavaDoc 检查

我对验证 JavaDoc 很感兴趣,我找到了自定义检查的答案

该问题com.sun.javadoc已被删除,将仅在java 9中被替换(这意味着至少使用java 10

此包中的声明已被包 jdk.javadoc.doclet 中的声明所取代。有关详细信息,请参阅该软件包文档中的迁移指南。

有没有使用 Java 8 的替代品?

编辑

我需要一个新的检查来阻止块标记后的描述,

在 checkstyle 中没有这样的规则,需要创建一个新的检查

在 PMD 中没有这样的规则,可能需要创建一个新的检查

0 投票
0 回答
178 浏览

gradle - 如何组合多个 javadoc doclet?

我一直在为一个大型项目制作一个 javadoc,我不确定我正在尝试做的事情是否可行,或者是否需要结合其他人制作第三个 doclet。我已经能够成功地使用 doclet org.asciidoctor.Asciidoclet(对 javadoc 注释使用 asciidoc 语法)和info.leadinglight.umljavadoclet.UmlJavaDoclet(自动生成的 plantuml 类和依赖关系图),但我没有看到如何组合它们。通读 javadoc 文档和 google-fu 并没有对这种过程进行太多讨论。我使用 gradle 作为我的构建工具和 javadoc 插件。

任何见解都会很棒。

谢谢!

0 投票
1 回答
1161 浏览

java - com.sun.tools.javadoc.Main.execute 在 jdk 11 中运行 Doclet 的替代方法是什么?

我在 Apache netbeans 10 上使用 JDK 11。

main方法自 java 9 以来已被弃用,并标记为在没有替代方法的情况下删除

我在命令行中的所有尝试都以

当我尝试:

我得到:

Start方法被贬低并被run方法取代,以前的设置适用于 java 8 及更早版本,我想要 9、10、11 的等价物。

我查看了 DocumentationTool 的文档和相关材料,但没有找到一个工作示例。

有什么方法可以以编程方式运行 Doclet/DocletEnvironment 或从命令行运行一个工作示例?

0 投票
1 回答
295 浏览

java - 无法运行 Oracle 提供的 Doclet 类

我想试验 Doclets ( JDK 9 ),所以我一步一步地尝试了这个链接中给出的一切。我没有在Example课堂上添加任何自定义内容。它与 Oracle 给出的完全一样(我刚刚声明了imports)。

甲骨文给出命令:

现在,当我运行给定的javadoc命令时,出现以下错误:

javadoc: 错误 - 找不到 doclet 类示例

我尝试了该命令的一些变体,因为它似乎是导演的问题,但我所有的尝试都失败了。

我放在Example.java我的桌面文件夹中:C:\Users\George\Desktop\

所以,在我的命令行中,我cd C:\Users\George\Desktop\. 然后javac Example.java(如果它想要编译它)。

然后,我尝试了以下所有命令,得到了同样的错误。

.

(+不带引号)

javadoc -doclet Example -overviewfile overview.html"C:\Users\George\Desktop\Example.java"

我尝试了在 SO 中找到的其他一些东西,但同样没有任何效果。我错过了什么?给定的示例不应该工作吗?

示例类(以防你看到我没有看到的东西):

0 投票
0 回答
245 浏览

java - Maven项目中的自定义doclet - 无效标志

我正在尝试在我的 Maven 项目上生成 javadoc。我正在使用 Java 1.8,并编写了一个小型 doclet 项目。我项目上的 pom -

我尝试对此运行 javadoc:aggregate。我收到一个错误

关于我做错了什么的任何想法?

我一直在关注有关编写 doclet 的 Maven 页面 - https://maven.apache.org/plugins/maven-javadoc-plugin/examples/alternate-doclet.html#

0 投票
1 回答
60 浏览

java - 在文档中显示部分方法体

我想在其文档(JavaDoc)中显示部分方法体。

例如:

应该产生如下文件:

我知道这样的文档有点傻,而且不是自然语言。但最好的事情是它永远不会过时。

所以一般概念可以用自然语言来描述,但关键元素可以直接从源代码中复制。如您所见,源代码也可以为非程序员提供信息。这是我的问题:

问题:

如何在方法的文档中复制(显示)部分或整个方法主体?

现在我正在使用 JavaDoc,但我也可以使用任何其他工具。如果有帮助,我还可以在源代码中添加一些指针(注释或特殊注释)。

0 投票
0 回答
70 浏览

java - MethodDoc 报告方法为非可变参数

给定以下课程:

当使用 a 分析这个时Doclet,我得到一个MethodDocfor varArgsMethod,但该方法isVarArgs返回false。为什么不返回true

Clojure 中的代码:

0 投票
1 回答
112 浏览

junit - 如何在不模拟 Doclet API 的情况下测试 Java 9+ doclet?

我使用 Java 9+ 编写了一个 Doclet。我想在不模拟 Doclet API 的情况下使用 JUnit 框架对其进行测试。有什么好的处理方法吗?