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

标签 android maven kotlin jitpack kdoc

背景
经过大量的研究和尝试,并寻求帮助,我成功地在 Jitpack 上使用 maven 发布了一个私有(private)的 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 的简要说明。如果需要,还可以阅读文档。

    Using the Gradle plugin

    The preferred way is to use plugins block.

    build.gradle.kts:
    
    plugins {
        id("org.jetbrains.dokka") version "1.4.32" }
    
    repositories {
        mavenCentral() }
    

    The plugin adds dokkaHtml, dokkaJavadoc, dokkaGfm and dokkaJekyll tasks to the project.


    Applying plugins

    Dokka plugin creates Gradle configuration for each output format in the form of dokka${format}Plugin:

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

    You can also create a custom Dokka task and add plugins directly inside:

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

    Please note that dokkaJavadoc task will properly document only single jvm source set

    To generate the documentation, use the appropriate dokka${format} Gradle task:

    ./gradlew dokkaHtml
    

    Please see the Dokka Gradle example project for an example.

    Make sure you apply Dokka after com.android.library and 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也是。

    关于android - 如何在 Jitpack 上使用 maven 为 Kotlin 库发布 KDoc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67267094/

    相关文章:

    java - SQLite 查询 - 一旦找到特定项目就停止从数据库返回行

    Android GraphView Gradle "Failed to run"错误?

    android - 如何更改 AutocompleteTextview 建议中的字体?

    maven - mvn 依赖 :tree fails on trivial project

    java - Protostuff - 在 Windows 中为 .java 文件生成不正确的输出路径

    父类(super class)中的 Kotlin Init Block 在继承时使用 null 属性触发

    安卓电视 : VerticalGridFragment shadow dimension and color

    java - maven 编译失败并出现错误 -source 1.7 中不支持静态接口(interface)方法

    android - 在 onBindViewHolder 之外使用 ViewHolder 元素?

    android - 用Kotlin执行房间时出现错误