如何在 Jitpack 上使用 maven 为 Kotlin 库发布 KDoc?

问题描述

背景

经过大量研究和尝试,并寻求帮助,我成功地在 Jitpack 上使用 maven 发布了一个私有的 Github 存储库(编写为 here)。

所以,目前我放在 Jitpack 存储库中的文件只有这些:

  • jitpack.yml - 告诉使用哪些文件
  • library-release.aar -(混淆的)代码本身
  • pom-default.xml - 依赖项和其他一些配置。

问题

虽然依赖关系问题和 AAR 文件本身很好,我可以使用该库,但我注意到我无法找到一种方法将我在那里编写的内容作为 KDoc(如 JavaDocs,但对于 Kotlin)提供给任何使用

我的尝试

除了各种gradle任务,我还尝试了Android Studio本身的简单操作来制作。由于没有提及 KDoc,我使用了 Tools->Generate JavaDocs

遗憾的是,它告诉我没有,而且确实报告了 here

但即使它成功了,我也不知道如何将它与其他文件一起发布。

问题

我希望这是可能的,但是如何在 Jitpack 上使用 maven 生成并公开 KDoc?

解决方法

您需要使用 Dokka 来自动记录 Kotlin 项目。您可以在 this article 上找到 Dokka 的简要说明,并在需要时阅读文档。

使用 Gradle 插件

首选方式是使用插件块。

build.gradle.kts:

plugins {
    id("org.jetbrains.dokka") version "1.4.32" }

repositories {
    mavenCentral() }

插件添加了 dokkaHtmldokkaJavadocdokkaGfmdokkaJekyll 项目任务。

应用插件

Dokka 插件为每个输出格式创建 Gradle 配置 dokka${format}Plugin 的形式:

dependencies {
    dokkaHtmlPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.4.32") }

您也可以创建自定义 Dokka 任务并直接添加插件 内部:

val customDokkaTask by creating(DokkaTask::class) {
    dependencies {
        plugins("org.jetbrains.dokka:kotlin-as-java-plugin:1.4.32")
    } }

请注意,dokkaJavadoc 任务只会正确记录单个 jvm源码集

要生成文档,请使用适当的 dokka${format} Gradle 任务:

./gradlew dokkaHtml

请参阅 Dokka Gradle 示例项目以获取示例。

确保在 com.android.library 之后应用 Dokka 并且 kotlin-android

buildscript {
    dependencies {
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}")
        classpath("org.jetbrains.dokka:dokka-gradle-plugin:${dokka_version}")
    } } repositories {
    mavenCentral() } apply(plugin= "com.android.library") apply(plugin= "kotlin-android") apply(plugin= "org.jetbrains.dokka")

dokkaHtml.configure {
    dokkaSourceSets {
        named("main") {
            noAndroidSdkLink.set(false)
        }   
    } }

官方 GitHub 存储库中的更多信息 - https://github.com/Kotlin/dokka 您可能也喜欢this article

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...