kotlin项目实现Java doc的方案:使用Dokka

执行指令**./gradlew dokkaHtml** 后,会在 "yourLibraryModule"/build/dokka/html/index.html路径生成对应的html文件

但是这个命令执行会存在一些报错,接下来逐步解释一下遇到的报错:

首先是Gradle版本与Android Gradle Plugin插件的版本不兼容:

报错内容如下: FAILURE: Build failed with an exception.

  • What went wrong: A problem occurred configuring root project 'SmartInterationCarLink'.
    Could not resolve all files for configuration ':classpath'.
    Could not resolve com.android.tools.build:gradle:7.4.2. Required by: project :
    No matching variant of com.android.tools.build:gradle:7.4.2 was found.
    The consumer was configured to find a library for use during runtime,
    compatible with Java 8, packaged as a jar, and its dependencies declared externally,
    as well as attribute 'org.gradle.plugin.api-version' with value '8.6' but: - Variant 'apiElements' capability com.android.tools.build:gradle:7.4.2 declares a library,
    packaged as a jar, and its dependencies declared externally:

解决方案:降级Gradle版本到7.5

**Step 1:**确认当前 Gradle 版本:./gradlew -v

查看当前结果是:Gradle 8.6

**Step 2:**修改 Gradle Wrapper gradle的版本

打开文件:gradle/wrapper/gradle-wrapper.properties

修改为:distributionUrl=https://services.gradle.org/distributions/gradle-7.5-bin.zip

**Step 3:**确保 JDK 至少是 11(或17)

使用./gradlew -v 查看 JVM版本

如果不是17,可以通过gradle.properties内指定绝对路径,参考:

org.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64

  • 如果不知道路径,可以用 readlink -f $(which javac) 这个命令查看路径
  • 如果本地没安装17,ubuntu系统可以使用 此命令进行安装 sudo apt install openjdk-17-jdk

以上基本可以解决全部环境问题。

接下来是Dokka 插件应用问题,确保环境正常后再次执行./gradlew dokkaHtml

会报错如下:

Configure project :app WARNING:The option 'android.databinding.enableV2' is deprecated.

The current default is 'true'.

It has been removed from the current version of the Android Gradle plugin. Databinding v1 is removed.

FAILURE: Build failed with an exception.

What went wrong: Task 'dokkaHtml' not found in root project 'SmartInterationCarLink'.

出现这个问题的原因是Dokka是个插件,需要在工程中引用,引用方法如下:

在根目录的build.gradle 中统一声明版本

复制代码
plugins {
    id "org.jetbrains.dokka" version "1.9.20" apply false
}

在需要生成doc的模块增加插件引用:

复制代码
plugins {
    id 'org.jetbrains.dokka'
}

完成以上步骤就可以实现kotlin版本的doc生成啦

相关推荐
cui_hao_nan1 分钟前
Spring AOP 自调用、代理与 private 方法引发的诡异 NPE
java·后端·spring·ai开发
码艺-Alimjan10 分钟前
维吾尔语数字转文本
java·javascript·python·算法·go
可乐鸡翅yeah_11 分钟前
hls.js 多实例并发踩坑,多视频页面播放器内存与冲突问题解决
开发语言·前端·javascript·音视频·hls·m3u8·m3u8在线播放
俊昭喜喜里12 分钟前
c#中的构造函数
开发语言·数据库·c#
事圆则缓17 分钟前
Java 常见数据结构与 Android 使用场景
android·java·数据结构
hahaha601623 分钟前
HLS高层次综合设计--axi之burst纠偏
开发语言·算法·fpga开发·c#
xieliyu.30 分钟前
计算机网络:Fiddler 抓包工具使用教程 + HTTP 协议报文格式详解
java·笔记·计算机网络·测试工具·http·java-ee·fiddler
SunnyDays101130 分钟前
如何使用 Python 给 PDF 添加附件:文档附件与附件注释
开发语言·python·pdf
步行cgn31 分钟前
@Value 详解:Spring 属性注入的核心注解
java·python·spring
2401_8504811738 分钟前
UVA815
java