2016-01-07 92 views
1

我使用的Java插件建設有一個的gradle項目工程,我想也利用doclava的doclet如何使javadoc的doclava的doclet與gradle這個

這裏打造的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 

任何人可以使它與搖籃工作doclava?

回答

6

考慮看看到在錯誤中提到的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支持doclet中。

潛入org.gradle.api.tasks.javadoc.Javadoc代碼我找到了解決方法。我只是添加標題= null來的Javadoc任務的build.gradle文件

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")]  
} 

我希望它可以幫助別人:)