Kotlin DSL中如何让Library传递注解库依赖给主应用?
解决方案
问题根源
你在Library中用implementation引入注解库,这个配置的依赖仅对Library自身编译可见,不会传递给依赖它的Sample App,导致Sample App编译时找不到注解类的引用。
具体解决步骤
修改注解库的依赖配置
将Library中注解库的implementation替换为api,这样依赖会自动传递给上层模块。修改Library的Gradle DSL代码:api(libs.annotations) // 替换原有的implementation(libs.annotations) kapt(libs.annotations) // 保留该行,用于Library自身的注解处理api配置会让依赖对外暴露,当Sample App依赖你的Library时,会自动引入注解库,无需单独添加注解库依赖。编译AAR上传到Artifactory后,对应的pom文件会包含这个传递依赖,Sample App拉取AAR时会自动解析并下载注解库。注解处理器的补充说明
如果Sample App需要自己使用注解处理器生成代码(而非仅用Library生成好的功能),仅靠Library的kapt配置不够——kapt依赖不会自动传递。这种情况下,你得在Sample App的Gradle配置里手动加kapt(libs.annotations)。但要是Sample App只是用Library提供的注解类(不需要自己触发代码生成),那只做第一步就足够解决“unresolved reference”错误。
内容的提问来源于stack exchange,提问作者Neglected Sanity
相关产品推荐
相关产品推荐

