【问题标题】:How to generate javadoc jar for repository upload with dokka?如何使用 dokka 生成用于存储库上传的 javadoc jar?
【发布时间】:2018-01-06 12:47:19
【问题描述】:
我最近将一个 java 组件迁移到了 kotlin。到目前为止,当我使用maven发布插件时,它也自动生成了javadoc,并且它也被上传到了oss.sonatype.com。另一方面,Dokka 似乎没有与开箱即用的发布插件集成。结果,上传到 oss.sonatype.com 后,nexus 拒绝发布并出现验证错误,因为缺少 javadoc jar。
dokka 是否与 maven 发布插件集成?
【问题讨论】:
标签:
maven
kotlin
nexus
maven-release-plugin
kotlin-dokka
【解决方案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)