我有一个 App
模块和两个库模块 X
以及 Y
哪里 App
取决于 X
以及 X
取决于 Y
.
┌─────┐
│ App │
└─────┘
│ uses
▼
┌─────┐
│ X │
└─────┘
│ uses
▼
┌─────┐
│ Y │
└─────┘
还有一节课 XClass
在 X
以及 YClass
在 Y
,其中一个延伸另一个:
// In module X:
class XClass : YClass
// In module Y:
class YClass
问题是 Y
必须是可见的 App
为了让它工作,否则我会出现这样的错误: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath: class XClass, unresolved supertypes: YClass
自然的解决办法是 Y
作为一个 api
附属国:
// In build.gradle in X:
dependencies {
api project(':y')
}
所以问题是:
我不想让用户进来 App
能够使用 Y
. 我如何才能做到这一点,使它仍然编译?
我正在出版 X
以及 Y
通过 maven-publish
,因此理想情况下,该解决方案在发布时也应该有效。
暂无答案!
目前还没有任何答案,快来回答吧!