Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在javadoc中嵌入文件或部分文件的内容_Java_Javadoc - Fatal编程技术网

有没有办法在javadoc中嵌入文件或部分文件的内容

有没有办法在javadoc中嵌入文件或部分文件的内容,java,javadoc,Java,Javadoc,当我编写单元测试时,我将它们视为验证代码行为是否符合预期的机制,以及如何使用代码的文档化示例。因此,我希望将我的测试类的内容作为示例。比如说: /** * Foos the bar * @example FooBarTest#testFooingBar() * @param bar The {@link Bar} to foo * return The fooed {@code Bar} */ public Bar fooBar(Bar bar) { // Completely

当我编写单元测试时,我将它们视为验证代码行为是否符合预期的机制,以及如何使用代码的文档化示例。因此,我希望将我的测试类的内容作为示例。比如说:

/**
 * Foos the bar
 * @example FooBarTest#testFooingBar()
 * @param bar The {@link Bar} to foo
 * return The fooed {@code Bar}
 */
public Bar fooBar(Bar bar)
{
   // Completely foo the bar
}
然后,当它被呈现时,您将在javadoc中看到foobertest.testFooingBar()的内容


我在谷歌上搜索了一下,什么也没看到。那么我有什么办法可以做到这一点吗(也许是maven插件)?

我刚刚完成了一个测试版的库,它可以做到这一点。它叫Codelet。以下是我刚刚发布的答案:


这是我试图用()回答的问题

Codelet使用标记自动将已经过单元测试的示例代码插入到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()“customizer”删除包声明行和所有多行注释(如许可证和JavaDoc块)

输出(在水平规则之间):


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

{@.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())
结束。这也消除了额外的缩进,在本例中为六个空格

输出(在水平规则之间):


例子 输出:


所有标记都接受自定义项

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

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

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

输出(在水平规则之间):


例子
Codelet处于测试阶段,但相当稳定。请考虑尝试一下,并在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 "LICENSE_lgpl-3.0.txt" and "LICENSE_asl-2.0.txt". 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