我通过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选项。
答案 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
无法正常工作,但空字符串确实如此。