gradle - Gradle 多项目 build.gradle 遍历依赖
问题描述
我有一个相当大的build.gradle
文件,其中有 28 个 Gradle 项目。我在遍历依赖项方面遇到了一些问题。例如,我必须进行项目Harbor.Client
和Harbor.Models
. 我的客户依赖于我的模型项目。但是,我使用客户端的项目也需要定义对模型项目的依赖,而不是仅仅从客户端项目中获取。
例子
project(':Harbor.Client') {
dependencies {
implementation project(':Harbor.Models')
}
}
project(':Harbor.Models') {
dependencies {
}
}
project(':Application') {
dependencies {
implementation project(':Harbor.Client')
implementation project(':Harbor.Models')
}
}
有没有我可以设置的设置,以便Application
项目不需要设置直接依赖Harbor.Models
?
project(':Harbor.Client') {
dependencies {
implementation project(':Harbor.Models')
}
}
project(':Harbor.Models') {
dependencies {
}
}
project(':Application') {
dependencies {
// Gets ':Harbor.Models' though ':Harbor.Client'
implementation project(':Harbor.Client')
}
}
解决方案
我发现答案是使用 API 依赖而不是实现
project(':Harbor.Client') {
apply plugin: 'java-library'
dependencies {
implementation project(':Harbor.Models')
}
}
project(':Harbor.Models') {
apply plugin: 'java-library'
dependencies {
}
}
project(':Application') {
dependencies {
// Gets ':Harbor.Models' though ':Harbor.Client'
api project(':Harbor.Client')
}
}
推荐阅读
- android - RecyclerView 项目选择和取消选择
- reactjs - 在父子组件之间共享数据
- linq - 通过 sql 查询生成的 group 没有意义
- r - 从列表中提取相同 id 的行
- javascript - 自动将元素添加到html中的表格
- javascript - Hangouts 聊天 API 脚本 BOT 获取用户位置 GPS 坐标
- java - 询问 JDBC 驱动程序它支持哪个版本的 JDBC
- c# - EF Core Eager 加载性能极慢
- html - 如何在多边形的每个点上画一个圆并用不同的颜色填充该点?
- python - Python3 deepcopy 类实例不起作用