作为一个相对较新的 Android 开发者,我花了很长时间才弄清楚这一点,所以想花时间分享我的发现。
与文档一起发布 aar 库的解决方案是将“sources.jar”工件与 aar 一起打包。如果您熟悉 iOS,那么 resources.jar 本质上将充当代码的头文件,您可以在其中公开未缩小的库 API 和 KDocs。当使用 Android Studio/Gradle 的用户下载您的库时,它将自动提取您的sources.jar,并能够将您的 aar 链接到 IDE 中的 KDocs。
在您的 build.gradle 中,确保您使用的是“maven-publish”。
创建一个新任务来构建您的sources.jar。由于我正在使用闭源代码,因此我不想公开整个库,因此我手动选择了包含公共 API 及其文档的特定文件:
task androidSourcesJar(type: Jar) {
group("documentation")
classifier("sources")
def sdkDir = "$projectDir/src/main/java/com/project/sdk"
def publicAPI = ["$sdkDir/MyLibAPI.kt",
"$sdkDir/MyLibData.kt",
"$sdkDir/MyLibNotificationInterface.kt",
"$sdkDir/utils",
from publicAPI
}
从那里,我们需要 Maven-publish 来运行此任务并将其作为工件包含到我们的 Maven 存储库中。每个人的maven发布设置看起来都有点不同,但只需添加artifact(tasks["androidSourcesJar"])
到您的出版区。我的看起来像这样:
publishing {
publications {
aar(MavenPublication) {
artifactId = "mylib"
artifact(tasks["androidSourcesJar"])
artifact("$buildDir/outputs/aar/mylib-release.aar")
... (additional setup)
}
}
}
从那里您可以像往常一样发布您的 aar,新创建的 source.jar 将与其一起发布,从而允许您的用户访问您的 Kdocs ????
就是这样。对我(来自 iOS)来说,这个过程的记录确实有点荒谬,尽管大多数已发布的库似乎已经弄清楚了这一点。