如何在JavaDoc中显示示例代码,而不必手动复制/粘贴它?

如何在JavaDoc中显示示例代码,而不必手动复制/粘贴它?,java,documentation,javadoc,Java,Documentation,Javadoc,我需要在我的库的JavaDoc文档中直接显示我的示例代码,包括它的输出。但是我想使这个过程自动化,这样示例代码就可以由外部过程进行单元测试,除非它实际工作,否则不会显示出来 我还没有找到一种方法来做到这一点,除非手动复制粘贴源代码并在每次更改时输出,这是不可管理的,因为现在我的各种项目中有超过100个示例类。或者,我不能简单地显示这些示例,而是提供指向它们的链接 这两种解决方案都是不可接受的,我希望有更好的办法 如何自动插入示例代码,使其直接显示在JavaDoc中 谢谢。这是我试图回答的问题 C

我需要在我的库的JavaDoc文档中直接显示我的示例代码,包括它的输出。但是我想使这个过程自动化,这样示例代码就可以由外部过程进行单元测试,除非它实际工作,否则不会显示出来

我还没有找到一种方法来做到这一点,除非手动复制粘贴源代码并在每次更改时输出,这是不可管理的,因为现在我的各种项目中有超过100个示例类。或者,我不能简单地显示这些示例,而是提供指向它们的链接

这两种解决方案都是不可接受的,我希望有更好的办法

如何自动插入示例代码,使其直接显示在JavaDoc中


谢谢。

这是我试图回答的问题

Codelet使用taglet自动将已经过单元测试的示例代码插入到JavaDoc中。与所有taglet一样,Codelet作为javadoc.exe的一部分执行。它现在以beta版发布,需要beta测试人员

有四个Codelet标记:

{@codelet.and.out}:显示紧跟其输出的源代码 {@codelet}:仅显示源代码 {@codelet.out}:仅显示输出 {@file.textlet}:显示任何纯文本文件的内容,例如示例代码的输入。 A:

{@.codelet.and.out.com.github.aliteralmind.codelet.examples.adder.AdderDemo%eliminateCommentBlocksAndPackageDecl}

它使用EliminateCommentBlocks和PackageDecl自定义程序来消除包声明行和所有多行注释,如许可证和JavaDoc块

水平规则之间的输出:

实例 输出 另一种方法是仅显示示例代码的一部分:a:

{@.codelet.and.out.com.github.aliteralmind.codelet.examples.adder.AdderDemo%lineRange1,false,adder adder,2,false,printladder.getSum,^}

这将显示与上面相同的示例,从包含加法器的行开始,到第二个printlnadder.getSum结束。这也消除了额外的缩进,在本例中为六个空格

水平规则之间的输出:

实例 输出:

所有标记都接受自定义项

您可以编写自己的自定义程序,例如,可以更改显示源和输出的模板,并对任何或所有行进行任意更改。示例包括以黄色突出显示某些内容,或进行正则表达式替换

作为最后一个示例,并与上面的示例形成对比,这里是一个标记,它在不做任何更改的情况下,盲目地打印示例代码中的所有行。它使用:

{@.codelet.and.out.com.github.aliteralmind.codelet.examples.adder.AdderDemo}

水平规则之间的输出:

实例
Codelet现在以beta版发布。请考虑尝试一下,并在GITHUB问题跟踪器中发表你的评论和批评。

< P>这是我试图回答的问题。

Codelet使用taglet自动将已经过单元测试的示例代码插入到JavaDoc中。与所有taglet一样,Codelet作为javadoc.exe的一部分执行。它现在以beta版发布,需要beta测试人员

有四个Codelet标记:

{@codelet.and.out}:显示紧跟其输出的源代码 {@codelet}:仅显示源代码 {@codelet.out}:仅显示输出 {@file.textlet}:显示任何纯文本文件的内容,例如示例代码的输入。 A:

{@.codelet.and.out.com.github.aliteralmind.codelet.examples.adder.AdderDemo%eliminateCommentBlocksAndPackageDecl}

它使用EliminateCommentBlocks和PackageDecl自定义程序来消除包声明行和所有多行注释,如许可证和JavaDoc块

水平规则之间的输出:

实例 输出 另一种方法是仅显示示例代码的一部分:a:

{@.codelet.and.out.com.github.aliteralmind.codelet.examples.adder.AdderDemo%lineRange1,false,adder adder,2,false,printladder.getSum,^}

这将显示与上面相同的示例,从包含加法器的行开始,到第二个printlnadder.getSum结束。这也消除了额外的缩进,在本例中为六个空格

水平规则之间的输出:

实例 输出:

所有标记都接受自定义项

您可以编写自己的自定义程序,例如,可以更改显示源和输出的模板,并对任何或所有行进行任意更改。示例包括以黄色突出显示某些内容,或进行正则表达式替换

作为最后一个例子,与上面的例子相比,这里是tagle 它盲目地打印示例代码中的所有行,不做任何更改。它使用:

{@.codelet.and.out.com.github.aliteralmind.codelet.examples.adder.AdderDemo}

水平规则之间的输出:

实例
Codelet现在以beta版发布。请考虑尝试一下,在GITHUB问题跟踪器中发布你的评论和批评。

不完全是你想要的,但也许另一个有趣的方法是:

文档。 它们使用标记记录文档,并将代码示例与中描述的特殊注释集成在一起。因此,所有的代码样本都可以在包含在文档中之前进行测试


不幸的是,他们用于生成文档的自定义解决方案可以在中找到。

不完全是您想要的,但另一个有趣的方法可能是:

它们使用标记记录文档,并将代码示例与中描述的特殊注释集成在一起。因此,所有的代码样本都可以在包含在文档中之前进行测试


他们生成文档的自定义解决方案可以在中找到。

我很高兴知道一个替代方案。谢谢你提供的信息。我很高兴知道另一个选择。谢谢你提供的信息。
public class AdderDemo  {
   public static final void main(String[] ignored)  {

      Adder adder = new Adder();
      System.out.println(adder.getSum());

      adder = new Adder(5, -7, 20, 27);
      System.out.println(adder.getSum());
   }
}
0
45
Adder adder = new Adder();
System.out.println(adder.getSum());

adder = new Adder(5, -7, 20, 27);
System.out.println(adder.getSum());
0
45
/*license*\
   Codelet: Copyright (C) 2014, Jeff Epstein (aliteralmind __DASH__ github __AT__ yahoo __DOT__ com)

   This software is dual-licensed under the:
   - Lesser General Public License (LGPL) version 3.0 or, at your option, any later version;
   - Apache Software License (ASL) version 2.0.

   Either license may be applied at your discretion. More information may be found at
   - http://en.wikipedia.org/wiki/Multi-licensing.

   The text of both licenses is available in the root directory of this project, under the names &quot;LICENSE_lgpl-3.0.txt&quot; and &quot;LICENSE_asl-2.0.txt&quot;. The latest copies may be downloaded at:
   - LGPL 3.0: https://www.gnu.org/licenses/lgpl-3.0.txt
   - ASL 2.0: http://www.apache.org/licenses/LICENSE-2.0.txt
\*license*/
package  com.github.aliteralmind.codelet.examples.adder;
/**
   <P>Demonstration of {@code com.github.aliteralmind.codelet.examples.adder.Adder}.</P>

   <P>{@code java com.github.aliteralmind.codelet.examples.AdderDemo}</P>

   @since  0.1.0
   @author  Copyright (C) 2014, Jeff Epstein ({@code aliteralmind __DASH__ github __AT__ yahoo __DOT__ com}), dual-licensed under the LGPL (version 3.0 or later) or the ASL (version 2.0). See source code for details. <A HREF=&quot;http://codelet.aliteralmind.com&quot;>{@code http://codelet.aliteralmind.com}</A>, <A HREF=&quot;https://github.com/aliteralmind/codelet&quot;>{@code https://github.com/aliteralmind/codelet}</A>
 **/
public class AdderDemo  {
   public static final void main(String[] ignored)  {

      Adder adder = new Adder();
      System.out.println(adder.getSum());

      adder = new Adder(5, -7, 20, 27);
      System.out.println(adder.getSum());
   }
}
0
45