2

Javaプラグインを使用してgradleでプロジェクトを構築していますが、 doclava docletを使用してjavadocも構築したいと考えています

モジュールのbuild.gradleの関連部分は次のとおりです

apply plugin: 'java'
javadoc {
    source = sourceSets.main.allJava

    ...

    exclude "com/mobaires/sdk/api/debug/**"

    options.windowTitle = "SDK"
    options.docTitle = "SDK"

    options.doclet = "com.google.doclava.Doclava"
    options.docletpath = [file("libs/doclava-1.0.5.jar")]    
}

./gradlew javadoc を実行すると、このエラーが発生します

16:24:46.030 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :javadoc FAILED
16:24:46.035 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[main,5,main]] finished, busy: 0.695 secs, idle: 0.0040 secs
16:24:46.044 [ERROR] [org.gradle.BuildExceptionReporter] 
16:24:46.045 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception.
16:24:46.045 [ERROR] [org.gradle.BuildExceptionReporter] 
16:24:46.046 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
16:24:46.046 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':javadoc'.
16:24:46.047 [ERROR] [org.gradle.BuildExceptionReporter] > Javadoc generation failed. Generated Javadoc options file (useful for troubleshooting): '.../build/tmp/javadoc/javadoc.options'
16:24:46.048 [ERROR] [org.gradle.BuildExceptionReporter] 
16:24:46.048 [ERROR] [org.gradle.BuildExceptionReporter] * Try:
16:24:46.049 [ERROR] [org.gradle.BuildExceptionReporter] Run with --stacktrace option to get the stack trace. 
16:24:46.055 [LIFECYCLE] [org.gradle.BuildResultLogger] 
16:24:46.058 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED
16:24:46.059 [LIFECYCLE] [org.gradle.BuildResultLogger] 
16:24:46.060 [LIFECYCLE] [org.gradle.BuildResultLogger] Total time: 9.297 secs

Gradleでdoclavaを動作させることができる人はいますか?

4

1 に答える 1

8

エラーログに記載されている javadoc.options を確認すると、次のように表示されます

-classpath '... all the classpath here ...'
-d '.../build/docs/javadoc'
-doclet 'com.google.doclava.Doclava'
-docletpath '../libs/doclava-1.0.5.jar'
-doctitle 'XXXX'
-quiet 
-windowtitle 'XXXX'
'... classes to get javadoc'

問題は、gradle が doctitle と windowtitle を引数として javadoc コマンドに渡していることです。これは doclava ドックレットではサポートされていません。

org.gradle.api.tasks.javadoc.Javadoc コードに飛び込むと、うまくいく回避策が見つかりました。build.gradle ファイルの javadoc タスクに title = null を追加しただけです。

javadoc {
    source = sourceSets.main.allJava
    ...
    exclude "com/mobaires/sdk/api/debug/**"

    title = null

    options.doclet = "com.google.doclava.Doclava"
    options.docletpath = [file("libs/doclava-1.0.5.jar")]    
}

私はそれが他の人に役立つことを願っています:)

于 2016-01-14T13:31:23.283 に答える