@MustBeDocumented
ざっくり概要
This meta-annotation determines that an annotation is a part of public API and therefore should be included in the generated documentation for the element to which the annotation is applied.
つまり、@MustBeDocumented
を適用したannotation class
を公開APIとみなし、
そのannotation class
を適用した要素(クラスや関数)のドキュメントにannotation class
の情報を含めますよ〜
という宣言に用いるみたいです(ややこしい)
Javaでいうところの@Documentedですね
ざっくり使ってみる
以下のように、@MustBeDocumented
を適用したアノテーションと
適用していないアノテーションクラスを作成し、それぞれを通常のクラスに付与します
@MustBeDocumented
annotation class A_Annotation()
annotation class B_Annotation()
@A_Annotation
@B_Annotation
class TestClass()
〜
Kotlinのドキュメントの生成にはdokkaというJetBrains製のライブラリを使います
公式のガイド通りにビルド設定をし・・・
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.9.14"
}
}
apply plugin: 'org.jetbrains.dokka'
dokka {
outputFormat = 'html'
outputDirectory = "$buildDir/html"
}
えいや!
> ./gradlew dokka
〜
すると、
以下のようなドキュメントが生成されました
@MustBeDocumented
を適用したA_Annotation
クラスのみドキュメントに出力されてますね
余談
ちなみにdokka0.9.14で"Javadoc"を出力すると、アノテーションは表示されませんでした
dokka {
outputFormat = 'javadoc'
outputDirectory = "$buildDir/javadoc"
}