Javadoc无法识别doctitle选项/标志

时间:2012-06-14 13:38:09

标签: javadoc

我通过gradle运行带有doclet的javadoc,当我运行javadoc / doclet任务时,我收到了下一个错误:

error - invalid flag: -doctitle

然后,下一个使用表

usage: javadoc [options] [packagenames] [sourcefiles] [@files]
-overview <file>          Read overview documentation from HTML file
-public                   Show only public classes and members
-protected                Show protected/public classes and members (default)
-package                  Show package/protected/public classes and members
-private                  Show all classes and members
-help                     Display command line options and exit
-doclet <class>           Generate output via alternate doclet
-docletpath <path>        Specify where to find doclet class files
-sourcepath <pathlist>    Specify where to find source files
-classpath <pathlist>     Specify where to find user class files
-exclude <pkglist>        Specify a list of packages to exclude
-subpackages <subpkglist> Specify subpackages to recursively load
-breakiterator            Compute 1st sentence with BreakIterator
-bootclasspath <pathlist> Override location of class files loaded
                          by the bootstrap class loader
-source <release>         Provide source compatibility with specified release
-extdirs <dirlist>        Override location of installed extensions
-verbose                  Output messages about what Javadoc is doing
-locale <name>            Locale to be used, e.g. en_US or en_US_WIN
-encoding <name>          Source file encoding name
-quiet                    Do not display status messages
-J<flag>                  Pass <flag> directly to the runtime system

有没有人知道为什么Javadoc不接受那面旗帜?理论上,我从jdk1.6的tools.jar运行javadoc。我认为这是javadoc总是接受doctitle选项的东西。谢谢你的时间!

编辑:该doctitle选项是标准Doclet的一部分,因此看起来我无法访问标准Doclet选项。

2 个答案:

答案 0 :(得分:5)

已编辑:

知道了! 问题出在Doclet本身。我没有扩展标准Doclet(“公共类MyDoclet extends Standard {”),因此标准Doclet中的标志不可用(doctitle是标准Doclet标志的一部分)。

感谢Paulo让我“重新思考”我的回答: - )

答案 1 :(得分:2)

您可以在javadoc任务

上将任务局部变量'title'设置为空
task javadocTask(type: Javadoc) {
    title = ""
    //Other items like source and options
}

或者

javadocTask.title = ""

<强>为什么

Gradle在javadoc任务中设置局部变量'title',然后用于填充-doctitle和-windowtitle参数。如果它是空的,它们将不会填充字段,您可以避免此问题。

有趣的是,标题似乎是由java插件填充的,所以如果你从一个没有java的项目(比如聚合器项目)运行javadoc,你就不会遇到这个问题,但如果你移动javadoc生成一个java项目你会。

注意:title = ""title = null都适用于最新版本的gradle。这可能是因为gradle知道""null都是空的。但是,在较旧版本的gradle上,有报告称使用null无法正常工作,但空字符串确实如此。