我正在一个有3个模块的项目中工作,如下所示:
Project
|
|-- Common
|
|-- SDK
|
|-- App
Common是一个Android库模块,所有其他模块都依赖它,但我不必在任何地方发布,因为它只包含其他模块的公共代码.另一方面,SDK是另一个Android库项目,必须在我们的内部工件上发布.
App是SDK的示例项目.我能够毫无问题地发布SDK工件,但是当我在客户端应用程序中导入它时,编译失败,因为没有找到Common模块中的类.
对于SDK模块依赖的第三方依赖项,我使用实现(例如,实现’com.squareup.okhttp3:okhttp:3.11.0’并且所有这些依赖项已成功添加到SDK POM文件中)以及对Common的依赖性模块我使用实现项目(路径:’:Common’).
Error: cannot access Foo
class file for com.acme.Foo not found
(Foo是Common模块中的一个类)
为什么当我导入SDK时,找不到Common模块中的任何类?我期望编译器将两个模块合并为一个模块.有谁知道如何解决这个问题?
(我知道一个解决方案是在工件上发布Common,但我不想这样做,因为这只是内部公共代码).
解决方法:
通过api项目补充实现项目(路径:’:Common’)(路径:’:Common’)
关于api和实现之间的区别,你可以查看this article.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。