4

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が常にそのdo​​ctitleオプションを受け入れるものだと思いました。お時間をいただきありがとうございます!

編集:そのdoctitleオプションは標準ドックレットの一部であるため、標準ドックレットオプションにアクセスできないようです。

4

2 に答える 2

5

編集:

とった!問題はDoclet自体にありました。私は標準ドックレットを拡張していなかったので( "public class MyDoclet extends Standard {")、標準ドックレットのフラグは使用できませんでした(そしてdoctitleは標準ドックレットのフラグの一部です)。

私の答えを「再考」させてくれたPauloに感謝します:-)

于 2012-06-15T10:20:32.830 に答える
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 ないという報告がありますが、空の文字列は機能しました。

于 2013-10-29T00:12:33.287 に答える