生成的Javadoc页面不必要地用注释包装方法参数。

9
如果我为一个方法生成javadoc,方法的参数/异常就会不必要地被包装成新行,像这样:enter image description here 页面上还有大量水平空间。使用Oracle javadoc.exe 8u60. 我如何在不手动编辑HTML文件的情况下防止这些不必要的换行?下面是截图中显示部分的源代码:
<ul class="blockList">
    <li class="blockList">
        <a name="method.detail">
            <!--   -->
        </a>
        <h3>Method Detail</h3>
        <a name="getRootWord--">
            <!--   -->
        </a>
        <ul class="blockList">
            <li class="blockList">
                <h4>getRootWord</h4>
                <pre>@NotNull
public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRootWord()</pre>
            </li>
        </ul>
        <a name="setRootWord-java.lang.String-">
            <!--   -->
        </a>
        <ul class="blockList">
            <li class="blockList">
                <h4>setRootWord</h4>
                <pre>public&nbsp;void&nbsp;setRootWord(@NotNull
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rootWord)</pre>
            </li>
        </ul>
        <a name="getAdjectiveDeclension--">
            <!--   -->
        </a>
        <ul class="blockList">
            <li class="blockList">
                <h4>getAdjectiveDeclension</h4>
                <pre>@NotNull
public&nbsp;<a href="../../../../com/kayon/core/adjective/AdjectiveDeclension.html" title="interface in com.kayon.core.adjective">AdjectiveDeclension</a>&nbsp;getAdjectiveDeclension()
                                                     throws <a href="../../../../com/kayon/core/NoDeclensionException.html" title="class in com.kayon.core">NoDeclensionException</a></pre>
                <dl>
                    <dt><span class="throwsLabel">Throws:</span></dt>
                    <dd><code><a href="../../../../com/kayon/core/NoDeclensionException.html" title="class in com.kayon.core">NoDeclensionException</a></code></dd>
                </dl>
            </li>
        </ul>
        <a name="setAdjectiveDeclension-com.kayon.core.adjective.AdjectiveDeclension-">
            <!--   -->
        </a>
        <ul class="blockList">
            <li class="blockList">
                <h4>setAdjectiveDeclension</h4>
                <pre>public&nbsp;void&nbsp;setAdjectiveDeclension(@Nullable
                                   <a href="../../../../com/kayon/core/adjective/AdjectiveDeclension.html" title="interface in com.kayon.core.adjective">AdjectiveDeclension</a>&nbsp;adjectiveDeclension)</pre>
            </li>
        </ul>
    </li>
</ul>

上面的源代码被提取、压缩并经过 HTML 格式化工具处理,以便更易阅读。这里是完整的原始文件链接: https://gist.github.com/RAnders00/cdb94887150e339f36fa

所以你已经有了一个HTML格式化程序,但你不知道如何使用它? - user207421
我使用了一个在线快速 HTML 格式化程序,使其更易于阅读,原始代码和内联代码基本相同。就这些,没有更多的了。 - randers
你想使用文档注释来解决这个问题吗?虽然可行,但需要付出大量努力才能实现相对较小的改变。 - approxiblue
@approxiblue 我认为不值得。我会坚持处理小问题,而不是花费大量时间在此上面。 - randers
好的。作为参考,如果您查看生成javadoc的jdk8u60 tools.jar的源代码,它们会在每个方法参数注释后添加一个新行。 (http://hg.openjdk.java.net/jdk8u/jdk8u60/langtools/file/d56703662c0f/src/share/classes/com/sun/tools/doclets/formats/html/AbstractExecutableMemberWriter.java#l209) - approxiblue
@approxiblue 所以我猜如果我想的话,我可以用汇编语言来解决它,如果我真的想的话。 - randers
1个回答

7

您可以编写自定义doclet来自定义您的javadoc格式。

请查看javadoc生成器文档中的此部分:

Javadoc Doclets

您可以使用doclets自定义javadoc命令输出的内容和格式。 javadoc命令具有一个默认内置的doclet,称为标准doclet,用于生成HTML格式的API文档。 您可以修改或制作标准doclet的子类,或编写自己的doclet以生成您想要的HTML、XML、MIF、RTF或任何输出格式。

当未使用-doclet选项指定自定义doclet时,javadoc命令将使用默认的标准doclet。 无论使用哪个doclet,javadoc命令都有几个可用选项。 标准doclet添加了一组补充的命令行选项。 请参见选项。

http://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html


3
仅仅为了去掉几个换行符重新实现整个doclet是一个艰难的解决方案... - Holger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接