Kotlin + dokka でマルチモジュールのJavadocを生成
環境
Android Studio 3.5
macOS 10.14.4
kotlin 1.3.50
対象のモジュール構成
以下のような構成のプロジェクトを想定し、lib1とlib2のJavadocをまとめて生成する。
モジュール | 説明 |
---|---|
app | lib1とlib2に依存したアプリモジュール |
lib1 | Javadoc生成対象のライブラリモジュール |
lib2 | Javadoc生成対象のライブラリモジュール |
dokka導入
GitHub - Kotlin/dokka: Documentation Engine for Kotlin を参考に、プロジェクトのルートのbuild.gradleに以下を記述する。
buildscript { ext.dokka_version = '0.9.18' repositories { jcenter() } dependencies { classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:${dokka_version}" } }
ドキュメント用のモジュールを追加
Javadoc生成対象のソースコードをまとめ上げるモジュールを作成して、sourceSetsにドキュメント生成対象のコードを追加する。
main.java.srdDir
にソースセットを追加すると、appモジュールからライブラリのコードが正しく解決できなくなってしまったので、ドキュメント用のBuildTypeを定義してそこに追加するのがよさそう(以下の例では docs
というBuildTypeを定義している)。
apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'org.jetbrains.dokka-android' android { compileSdkVersion 28 defaultConfig { minSdkVersion 19 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles 'consumer-rules.pro' } buildTypes { // ドキュメント用のビルドタイプを定義する。これをしないとappモジュールからライブラリのコードをうまく解決できない。 docs {} } sourceSets { // ドキュメント生成対象のコードをソースセットに追加する docs.java.srcDirs += '../lib1/src/main/java' docs.java.srcDirs += '../lib2/src/main/java' } } dokka { outputFormat = 'javadoc' sourceDirs = files('src/main') outputDirectory = "$project.rootDir/docs" linkMapping { // Unix based directory relative path to the root of the project (where you execute gradle respectively). dir = "src/main/kotlin" // or simply "./" // URL showing where the source code can be accessed through the web browser url = "https://github.com/cy6erGn0m/vertx3-lang-kotlin/blob/master/src/main/kotlin" //remove src/main/kotlin if you use "./" above // Suffix which is used to append the line number to the URL. Use #L for GitHub suffix = "#L" } }
Javadoc生成
./gradlew dokka
サンプルコード
https://github.com/ergooo/DokkaMultiModuleSample
Javadoc生成結果
https://ergooo.github.io/DokkaMultiModuleSample/
参考
- 作者: Dmitry Jemerov,Svetlana Isakova,長澤太郎,藤原聖,山本純平,yy_yank
- 出版社/メーカー: マイナビ出版
- 発売日: 2017/10/31
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る