我有三个gradle
项目。说ProjectA
,ProjectB
和ProjectC
。
ProjectC
同时取决于ProjectA
和ProjectB
。 ProjectB
依赖于ProjectA
。
所以ProjectC
的{{1}}有以下几行:
build.gradle
并且dependencies {
implementation project(':ProjectA')
implementation project(':ProjectB')
}
的{{1}}具有以下内容:
ProjectB
我的问题是,为什么我需要在build.gradle
的构建文件中为dependencies {
implementation project(':ProjectA')
}
进行明确的implementation
声明?
自从我添加ProjectA
以来,ProjectC
依赖于ProjectB
是不是应该自动包含ProjectA
?
换句话说,为什么以下内容不适用于ProjectB
?
ProjectA
我是ProjectC
的新手,因此尝试了解Project工作之间的依赖关系管理。
编辑:
所以我想将dependencies {
implementation project(':ProjectB')
}
的build.gradle更改为以下内容:
gradle
这样我就可以将ProjectB
的build.gradle简化为:
dependencies {
api project(':ProjectA')
}
但是,出现以下错误:
ProjectC
我想念什么吗?
答案 0 :(得分:0)
因为implementation
正是出于此目的:它告诉ProjectA代码(内部)需要ProjectA才能起作用,但它不是其API的一部分(即,您不希望ProjectB的客户依赖它在内部使用ProjectA的事实)。
如果您希望ProjectA成为API或ProjectB的一部分,请使用api
配置而不是实现。
有关更多详细信息,请参见the guide。