Я реализовал докку в топе build.gradle
apply plugin: 'org.jetbrains.dokka-android'
dokka {
// These tasks will be used to determine source directories and classpath
// see https://github.com/Kotlin/dokka/blob/master/README.md
kotlinTasks {
defaultKotlinTasks() + [':core:compileDebugKotlin']
}
}
А в основном модуле у меня есть интерфейс, который нужно документировать:
import com.f2prateek.rx.preferences2.RxSharedPreferences
/**
* Интерфейс для работы с [android.content.SharedPreferences] с помощью [RxSharedPreferences]
*
* @property prefs Свойство для доступа к [android.content.SharedPreferences] через [RxSharedPreferences]
* @see RxSharedPreferences
*/
interface FeaturePrefs {
val prefs: RxSharedPreferences
}
Когда я запускаю задачу dokka, я получаю предупреждения
Can't find node by signature `com.f2prateek.rx.preferences2.RxSharedPreferences`, referenced at my.package.FeaturePrefs (FeaturePrefs.kt:5)
Есть ли способ использовать сторонние библиотеки в документации? Я хотел бы настроить его так, чтобы он ссылался на исходный код github (https://github.com/f2prateek/rx-preferences).
Уже пытался настроить его через "externalDocumentationLink", но, к счастью, не смог найти ни одного javadoc / package-list, на который ссылается эта библиотека.
Если вы нажмете на android.content.SharedPreferences в документации, вы будете перенаправлены на https://developer.android.com/reference/android/content/SharedPreferences.html, я хочу добиться того же поведения для rxprefs (перенаправление на github)
UPD: конфигурация dokka перемещена из корневого build.gradle в приложение:
apply plugin: 'org.jetbrains.dokka-android'
dokka {
externalDocumentationLink {
url = new URL("http://reactivex.io/RxJava/javadoc/")
}
externalDocumentationLink {
url = new URL("http://jakewharton.github.io/timber/")
}
externalDocumentationLink {
url = new URL("https://dagger.dev/api/2.0/")
}
Set<ProjectDependency> deps =
project.configurations.collectMany {
it.allDependencies
}.findAll {
it instanceof ProjectDependency
}
sourceDirs = files(deps.collect {
p ->
def path = new File(p.getDependencyProject().projectDir, "/src/main/java")
return path
})
}
Я добавил некоторые внешние документы документации, но все еще получаю много предупреждений, таких как
Can't find node by signature `javax.inject.Provider`
или
Can't find node by signature `androidx.fragment.app.Fragment`
Может быть, невозможно иметь ссылки на такого рода зависимости?
Я хотел бы, чтобы только мой код был документирован, но иметь внешние ссылки для зависимостей фреймворка и третьей стороны, это реально?