如何使用 dokka 生成用于存储库上传的 javadoc jar?

Posted

技术标签:

【中文标题】如何使用 dokka 生成用于存储库上传的 javadoc jar?【英文标题】:How to generate javadoc jar for repository upload with dokka? 【发布时间】:2018-01-06 12:47:19 【问题描述】:

我最近将一个 java 组件迁移到了 kotlin。到目前为止,当我使用maven发布插件时,它也自动生成了javadoc,并且它也被上传到了oss.sonatype.com。另一方面,Dokka 似乎没有与开箱即用的发布插件集成。结果,上传到 oss.sonatype.com 后,nexus 拒绝发布并出现验证错误,因为缺少 javadoc jar。

dokka 是否与 maven 发布插件集成?

【问题讨论】:

【参考方案1】:

发现问题。 Dokka 确实具有所需的 maven 目标 (dokka:javadocJar),但与 maven-javadoc-plugin 不同,它不受打包生命周期的约束。简单的解决方法是

                <plugin>
                <groupId>org.jetbrains.dokka</groupId>
                <artifactId>dokka-maven-plugin</artifactId>
                <version>$dokka.version</version>
                <executions>
                    <execution>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>dokka</goal>
                            <goal>javadoc</goal>
                            <goal>javadocJar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <includes>
                        <file>packages.md</file>
                    </includes>
                </configuration>
            </plugin>

【讨论】:

【参考方案2】:

使用GradleMavenPush 将 Gradle android Artifacts、Gradle Java Artifacts 和 Gradle Kotlin Artifacts 上传到 Maven 存储库(JCenter、Maven Central、企业暂存/快照服务器和本地 Maven 存储库)

apply from: 'https://raw.github.com/Vorlonsoft/GradleMavenPush/master/maven-push.gradle'

你可以用它生成Dokka文档,它有task androidDokka(type: Exec, dependsOn: dokkaInitializer)task coreDokka(type: Exec, dependsOn: dokkaInitializer)

【讨论】:

以上是关于如何使用 dokka 生成用于存储库上传的 javadoc jar?的主要内容,如果未能解决你的问题,请参考以下文章

KDoc / Dokka:忽略子类中的继承方法

Kotlin-为Android项目生成Doc文档

Dokka - 跳过为默认的 android 包生成 javadoc

使用Dokka为Kotlin代码生成KDoc

如何在 Kotlin 文档 Dokka/Kdoc 中转义符号?

在 pom.xml 中覆盖用于上传的存储库