現在、すべてのプロジェクトで、さらにはjavadocの生成でさえ、Gradleを使用しています。
_Android.libraryVariants.all { variant ->
task("generate${variant.name}Javadoc", type: Javadoc) {
title = "$name $version API"
source = variant.javaCompile.source
ext.androidJar = "${Android.plugin.sdkDirectory}/platforms/${Android.compileSdkVersion}/Android.jar"
ext.googlePlayServicesJar = "${Android.plugin.sdkDirectory}/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar"
classpath = files(variant.javaCompile.classpath.files, ext.androidJar, ext.googlePlayServicesJar)
options.links("http://docs.Oracle.com/javase/7/docs/api/");
options.links("http://d.Android.com/reference/");
//options.linksOffline("http://d.Android.com/reference", "${Android.plugin.sdkDirectory}/docs/reference");
exclude '**/BuildConfig.Java'
exclude '**/R.Java'
}
}
_
そのコードで、1つを除いてすべてが機能しました:通常のAndroidアクティビティ、ビットマップなどのAPIオブジェクト。Javaのリンクは正常に機能しています。
最終的に生成されたドキュメントは http://d.Android.com/reference にリンクしません。 options.links()とoptions.linksOffline()
の両方を試しましたが、成功しませんでした。
[〜#〜]編集[〜#〜]
@ejbのおかげで、複数のoptions.links()
を同時に提供できないという問題がありました。したがって、Javaのドキュメントにはoptions.links()
を、Androidのドキュメントにはoptions.linksOffline()
の両方を使用しました。
_options {
links("http://docs.Oracle.com/javase/7/docs/api/");
linksOffline("http://d.Android.com/reference", "${Android.plugin.sdkDirectory}/docs/reference");
//stylesheetFile = new File(projectDir, "stylesheet.css");
}
_
次のスニペットを使用して http://d.Android.com/reference に正常にリンクできましたこれは機能的に正確にあなたが持っているものです(限り私がわかるように)。
Android.libraryVariants.all { variant ->
task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
// title = ''
// description = ''
source = variant.javaCompile.source
classpath = files(variant.javaCompile.classpath.files, project.Android.getBootClasspath())
options {
links "http://docs.Oracle.com/javase/7/docs/api/"
linksOffline "http://d.Android.com/reference","${Android.sdkDirectory}/docs/reference"
}
exclude '**/BuildConfig.Java'
exclude '**/R.Java'
}
}
だからここに何か他の問題があります。
package-list
がWebサービスのパスで使用できないように見えるため、Javadocをオフラインで構築する必要があります。ドキュメントがローカルに読み込まれていることを再確認し、package-list
ディレクトリに/[Android-sdk]/docs/reference
があることを確認してください。
それでもわからない場合は、おそらく出力を投稿できます。
チェックする可能性のあるもう1つのことは、./build/tmp/[taskname]/javadoc.options
です。このファイルのhead
には、適切に設定された適切なオプションが示されているはずです。チェックする項目には、-classpathにAndroid.jarが適切に含まれており、期待される引数を使用してlinksOfflineが存在することが含まれます: -linksoffline extDocURL packageListLoc
javadoc.options
には、それぞれの引数のみを持つ両方のオプションが必要です。
-linksoffline 'http://d.Android.come/reference' '[sdkDir]/docs/reference'
-links 'http://docs.Oracle.com/javase/7/docs/api/'
[〜#〜] edit [〜#〜]:P-chanのおかげでAndroid.getBootClasspath()
がより良くなりました。
Android Gradleプラグイン1.1.2 +(com.Android.tools.build:gradle:1.1.+)の場合
libraryVariants-機能しなくなりました
use:
task javadoc(type: Javadoc) {
source = Android.sourceSets.main.Java.srcDirs
classpath += project.files(Android.getBootClasspath().join(File.pathSeparator))
destinationDir = file("../javadoc/")
failOnError false
}
destinationDir = file( "../ javadoc /")-プロジェクトディレクトリのルートでjavadocsを見つけます(このようにして、jenkins javadocプラグインはそれを見つけて、特別なドキュメントパネルに表示できます)
failOnError false-jenkinsでビルドの失敗を引き起こす可能性がある警告を抑制します
Doxygen-相互参照ドキュメントツール。
uIまたはターミナルから実行できます: http://www.doxygen.nl/manual/doxygen_usage.html
利用可能なjavadocを生成しますthrow Java tool: 'javadoc'
コマンドラインから実行:
javadoc -d docs -sourcepath app/src/main/Java -subpackages com
docs-宛先フォルダー