问题标签 [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.
java - 如何在 Eclipse 中运行 doclet
参考帖子中给出的示例:http ://www.javaworld.com/jw-08-2000/jw-0818-javadoc.html#resources
帖子中的示例:SimpleDoclet 和 SimpleOrder
我需要知道我需要在哪里放置 SimpleDoclet 和 SimpleOrder 以及如何运行这个 doclet 来生成输出?
我尝试将 Generate JavaDoc 与以下数据一起使用:
有两个包:newPack 包含我应该为其生成 javadoc 的类和 oldPack 存在 SimpleDoclet
你能告诉我一个解决方案吗?
java - doclet 中的 Main.execute 引发错误,提示找不到文件
我有一个打印类数据的 doclet。我从命令行运行文件,它工作正常。但是,我也想在 java 程序中运行它。因此,我在 doclet 中使用了以下主要方法:
NewClass.java 是我希望 SimpleDoclet 生成 javadoc 的 java 文件。我可以这样做吗?
如果是这样,那么当我运行这个 doclet 时,我会收到以下错误消息:
请问有什么解决办法吗?
maven - 如何在我的项目中编译和运行我的自定义 Doclet 类?
我试图在编译时将所有类 javadoc 注释(最好是库 WebPage 类的子类)转储到格式为 .properties 的文件中classname=comment
。
到目前为止,我有:
- 创建 doclet 类
SiteMapDoclet
- 该类被定义为扫描项目中的所有 javadocs 并将它们转储到 .properties 文件中
- 将必要的配置添加到我的 pom.xml 以使其正常工作。
版本: Java 1.6.0.21、Maven 2.2.1
问题:
mvn site
返回:
我尝试将 jar 设置为AdditionalDependencies
即使它们是我的项目的正常依赖项。我还尝试将路径添加到我希望我的类需要作为引导类路径的一部分的 jar 中。
我的 pom.xml 的报告部分如下所示:
注意:
${m2Repository}
被定义为文件上层的属性,
定义为${env.USERPROFILE}/.m2/repository
${bootClassPath}
定义为文件上层的属性,
定义为${env.JRE_6_HOME}\lib\rt.jar;${env.JAVA_HOME}\lib\tools.jar;
我该如何解决NoClassDefFoundError
?
此外,我希望我的 SiteMap 文件作为正常构建过程的一部分compile
在package
.
我已经尝试在 中定义它build
,但是 javadoc 没有被创建,而且我没有看到我的 Doclet 的任何日志输出。
更新:
感谢@ben75 的建议。我已经删除了pom.xml<reporting>
的部分,现在在构建过程中该过程失败了。我从. _<goals>
<configuration>
<reporting>
它仍在抛出,NoClassDefFoundError
但它发生在我想要的构建位置。我尝试添加:
到配置部分,但这不起作用。
java - 用于常见 javadocs 的 JavaDoc 解析器?
有什么东西可以用来解析 JavaDoc,这样我就可以在运行时通过标准 Doclet 接口对其进行操作?本质上,是Doclet的反向操作。
我知道为每个 Javadoc 编写解析器是不可能的(因为这可以是任意文档格式),但我很想知道标准 Doclet 是否有类似的东西。
java - 有没有办法为公共方法的子集生成 Javadoc?例如,通过将公共方法注释为“不是公共 API 的一部分”
我知道如何为类/接口/包的子集生成 Javadoc。但是有没有办法只为公共方法的一个子集生成 Javadoc?
我更希望能够将方法(Javadoc 标记或注释)标记为属于某个 API 或不属于它的一部分。然后有一个工具,它只为指定的方法集生成 Javadoc - 形成 API 的方法。
在公共/私有/包访问方法之间的选择对于我的项目来说是不够的。公共方法可能属于或不属于公共 API,或者它可能属于 API 1,但不属于 API 2。本质上,我希望能够从我的公共方法的任意子集中选择 API。
android - 使用 Doclava 生成 android 项目 javadoc 时出错
我正在尝试使用 javadoc & doclava 生成我的 android 项目的文档。我下载了doclava jar,并尝试通过Project-> generate javadoc 生成文档。
如果我理解了机制,我有两种方法可以告诉 javadoc 使用 doclava doclet:
1) 使用以下选项选择“使用自定义 doclet”:
Doclet 名称:com.google.doclava.Doclava
Doclet 路径:/full/path/of/my/doclava/dir/doclava-1.0.6.jar
2)选择“使用标准doclet”,然后在“javadoc选项”中输入:
-doclet com.google.doclava.Doclava
-docletpath ${/full/path/of/my/doclava/dir/doclava-1.0.6.jar}
我遇到了这些问题:
如果我使用第一种方法,我可以成功生成文档,但似乎无法识别 android 类。当 doclava 解析“import android.util.SparseArray”时出现错误
如果我使用第二种方法,我会收到此错误:“javadoc:错误 - 找不到 doclet 类 com.google.doclava.Doclava 1 错误”
事实上:如果我不使用 Doclava,我的文档会正确生成并带有指向 android api 的链接。
我只想创建带有指向 android/java 文档(用于 android/java 对象)的链接的项目 javadoc,并具有“android 外观和感觉”。
java - 如何使用 docletArtifact 作为自引用依赖项部署多模块 Maven 项目?
我有一个像这样的多模块 Web 应用程序项目:
家长
- 网络基础
- 授权
- 文档
- ADFS
- 测试站点
测试站点使用所有其他模块就好了。
doc结合 JavaDocs 和装载的网页信息来构建一个SiteMap。因为它正在为我的 SiteMap 生成解析 JavaDocs 它也是一个 Doclet Jar,因为 Doclet 是解析和存储站点地图信息的最简单方法。
在测试站点pom.xml 我有
因此,当我运行mvn release:prepare
它时,它想解决快照依赖关系,然后它会出错:
那么在部署项目时如何正确引用我的 Doclet?
java - 如何扩展 JavaDoc 5.0 标准 doclet?
我想扩展 Javadoc5.0 提供的标准 doclet 来修改它的 HTML 输出。例如,只要关键字“implemented”或“Interfaces”出现在生成的 JavaDoc HTML 中,我就想用另一个词替换它。不应更改所有其他元素。我怎样才能做到这一点?我不想在生成 Javadoc 后修改 HTML 源代码!我必须扩展哪些课程?网上有有用的教程吗?我搜索了教程,但只找到了这个http://docs.oracle.com/javase/1.5.0/docs/guide/javadoc/doclet/overview.html这对我没有多大帮助,因为这些例子没有扩展标准 doclet。在http://www.oracle.com/technetwork/java/javase/documentation/index-137483.html#customizingjavadoc上找到了另一个来源但我不能将此应用于JavaDoc5.0。任何人都可以提供一个有用的例子吗?谢谢!
enums - 在自定义 doclet 中处理某些 5.0 语言特性(枚举和注释)的问题
我正在使用 JDK 1.7 编写一个全新的自定义 doclet。这些是我到目前为止发现的问题:
Doc methods isAnnotationType()
、isAnnotationTypeElement()
和isEnum()
不起作用isEnumConstant()
。他们总是返回 false。
PackageDoc
方法enums()
不起作用。它总是返回一个空数组。Enums
包含在方法的结果中allClasses()
和ordinaryClasses()
。
ClassDoc
方法enumConstants()
不起作用。它总是返回一个空数组。Enum
常量包含在方法的结果中fields()
。
PackageDoc
方法annotationTypes()
不起作用。它总是返回一个空数组。Annotations
包含在 method 的结果中interfaces()
,因此我可以实现以下解决方法:
基于我在“Javadoc 5.0 中的新增功能”页面 ( http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/whatsnew-1.5.0.html ) 中找到的内容我猜那,即使我使用 JDK 1.7 编写它,我的 doclet 也在某种 5.0 之前的兼容模式下工作。这是我在“Javadoc 5.0 中的新功能”页面中找到的内容:
与自定义 Doclet 不兼容
在 5.0 之前编写的自定义 doclet 在使用 5.0 中的新语言功能的源文件上运行时会出现兼容性问题。新语言特性:修改了 Doclet API 和标准 doclet 以处理新的 5.0 语言特性——泛型、枚举、可变参数和注释。要处理这些功能,还需要修改自定义 doclet。Javadoc 工具尝试(在可能的范围内)呈现所谓的“遗留” doclet,以便 1) 继续使用 5.0 之前的源代码,以及 2) 符合他们对 5.0 源代码的期望. 因此,例如,类型参数和类型参数从泛型构造中剥离,类型变量和通配符类型被它们的擦除替换,并且 ClassDoc.fields() 将返回枚举常量。