java如何在JavaDoc中显示示例代码,而不必手动复制/粘贴?
我需要在我的库的JavaDoc文档中直接显示我的示例代码,包括它的输出。但是我想让这个过程自动化,这样示例代码就可以通过外部过程进行单元测试,除非它真的有效,否则不会显示
我还没有找到一种方法来做到这一点,除非每次进行更改时手动复制粘贴源代码(和输出)——这是难以管理的,因为我的各种项目中现在有100多个示例类。或者,我可以简单地不显示这些示例,而是提供指向它们的链接
这两种解决方案都是不可接受的,我希望有更好的方法来做到这一点
如何自动插入示例代码,使其直接显示在JavaDoc中
谢谢
# 1 楼答案
这是我试图用Codelet(GitHub link)回答的问题
Codelet使用taglets自动将经过单元测试的示例代码插入到JavaDoc中。与所有taglet一样,Codelet作为
javadoc.exe
的一部分执行。它现在以beta版发布(需要beta测试人员!)有四个Codelet标签:
{@codelet.and.out}
:显示紧跟其输出的源代码{@codelet}
:仅显示源代码{@codelet.out}
:仅显示输出{@file.textlet}
:显示任何纯文本文件的内容,例如示例代码的输入李>答common example
{@.codelet.and.out com.github.aliteralmind.codelet.examples.adder.AdderDemo%eliminateCommentBlocksAndPackageDecl()}
它使用
eliminateCommentBlocksAndPackageDecl()
“customizer”来消除包声明行和所有多行注释(例如许可证和JavaDoc块)输出(在水平规则之间):
示例
输出
另一种方法是只显示示例代码的一部分:a code snippet:
{@.codelet.and.out com.github.aliteralmind.codelet.examples.adder.AdderDemo%lineRange(1, false, "Adder adder", 2, false, "println(adder.getSum())", "^ ")}
这显示了与上面相同的示例,从(包含)
Adder adder
的行开始,以第二个println(adder.getSum())
结束。这也消除了额外的缩进,在本例中是六个空格输出(在水平规则之间):
示例
输出:
所有标签都接受定制
可以编写自己的自定义程序,例如,可以"linkify" function names,更改显示源和输出的模板,并对任何或所有行进行任意更改。例如,用黄色突出显示某些内容,或替换正则表达式
作为最后一个例子,并与上面的例子形成对比,这里是一个标签,它盲目地打印示例代码中的所有行,没有任何更改。它使用no customizer:
{@.codelet.and.out com.github.aliteralmind.codelet.examples.adder.AdderDemo}
输出(在水平规则之间):
示例
输出:
Codelet现在以beta版发布。请考虑试一试,并在GITHUB问题跟踪器中发布你的评论和批评。