Public API 检查 Kotlin 库
Public API check for Kotlin libraries
我现在正在编写一个小型 Kotlin 库,想知道是否有一种方法可以验证哪些 classes 和函数 publicly 公开。
我主要是想确保库不会暴露任何不属于 public API.
的实现细节
截至目前,每当库用户不应该能够访问给定的 class / 函数时,我将所有内容都表示为 internal
。
这种方法的问题是我可能会忘记将某些内容声明为 internal
,从而将某些内容暴露给用户。
当我无意公开 class / 方法时,我希望在构建时收到警告/错误。
非常感谢有关如何实现此目标或最佳实践的任何提示!
Kotlin 1.4-M2 引入了 explicit API mode,感觉就像您要找的东西。显式 API 模式要求您将 public
可见性修饰符添加到所有 public API 并显式指定 return 类型。您可以将 Gradle 插件配置为警告您显式 API 模式违规,甚至使构建失败。
此功能自 Kotlin 1.4 后可用。
该功能仅在Kotlin 1.4中可用,目前处于RC阶段,但您可以使用1.4版本的Kotlin Gradle插件和1.3.x 版本的 stdlib,既受益于新的 Gradle 插件功能,又确保您的库不依赖于不稳定的第 3 方代码。
Kotlin DSL 示例 (build.gradle.kts
):
kotlin {
explicitApi() // for strict mode
// or
explicitApiWarning() // for warning mode
}
使用 Groovy DSL (build.gradle
) 的示例:
kotlin {
explicitApi = 'strict'
// or
explicitApi = 'warning'
}
我现在正在编写一个小型 Kotlin 库,想知道是否有一种方法可以验证哪些 classes 和函数 publicly 公开。
我主要是想确保库不会暴露任何不属于 public API.
的实现细节截至目前,每当库用户不应该能够访问给定的 class / 函数时,我将所有内容都表示为 internal
。
这种方法的问题是我可能会忘记将某些内容声明为 internal
,从而将某些内容暴露给用户。
当我无意公开 class / 方法时,我希望在构建时收到警告/错误。
非常感谢有关如何实现此目标或最佳实践的任何提示!
Kotlin 1.4-M2 引入了 explicit API mode,感觉就像您要找的东西。显式 API 模式要求您将 public
可见性修饰符添加到所有 public API 并显式指定 return 类型。您可以将 Gradle 插件配置为警告您显式 API 模式违规,甚至使构建失败。
此功能自 Kotlin 1.4 后可用。
该功能仅在Kotlin 1.4中可用,目前处于RC阶段,但您可以使用1.4版本的Kotlin Gradle插件和1.3.x 版本的 stdlib,既受益于新的 Gradle 插件功能,又确保您的库不依赖于不稳定的第 3 方代码。
Kotlin DSL 示例 (build.gradle.kts
):
kotlin {
explicitApi() // for strict mode
// or
explicitApiWarning() // for warning mode
}
使用 Groovy DSL (build.gradle
) 的示例:
kotlin {
explicitApi = 'strict'
// or
explicitApi = 'warning'
}