Как добавить стороннюю библиотечную ссылку в документацию - PullRequest
0 голосов
/ 11 июля 2019

Я реализовал докку в топе 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`

Может быть, невозможно иметь ссылки на такого рода зависимости? Я хотел бы, чтобы только мой код был документирован, но иметь внешние ссылки для зависимостей фреймворка и третьей стороны, это реально?

...