gradle - Gradle:构建使用相同组件的多个应用程序(多多项目构建)
问题描述
我有不同的组件(比如说 comp1..compN),其中一些依赖于其他组件。我想构建使用这些组件的不同应用程序(app1..appN)。为这种情况设置 gradle 项目的好方法是什么?
目前我有一个平面结构,如:
dir
app1
app2
appN
comp1
comp2
comp3
compN
假设 app1 使用 comp1 和 2。我在 app1 的 settings.gradle 中添加了 comp1 和 2 的“includeFlat”。由于comp2依赖comp1,所以我在comp2的build.gradle中添加了这个依赖。
现在我可以构建 app1。不幸的是,我无法从目录 comp2 构建 comp2,因为它无法解决对 comp1 的依赖(但我可以从目录 app1 构建它gradle :comp2:build
)。
(我应该为 comp2 使用多项目构建:将 comp1 的 includeFlat 添加到 comp2 的 settings.gradle 吗?我不确定这是要走的路。)
有没有更好的方法来设置它?
解决方案
这是一个常规的多项目构建。settings.gradle
只需在根目录中创建一个文件并包含(而不是includeFlat
)每个项目,无论它是应用程序项目还是组件项目。然后在各个build.gradle
文件中定义项目之间的依赖关系。
gradle
从命令行中调用的目录无关紧要。如果您只想构建单个项目(例如gradle :app1:build
),只需使用任务路径。一旦您开始使用推荐的 Gradle 包装器 ( gradlew
),无论如何您都需要从根目录调用它。
推荐阅读
- tensorflow - 如何自动添加pb.cc的相对路径? proto
- r - 带示例的条件 group_by
- java - 执行失败 java.io.IOException:服务器返回 HTTP 响应代码:403 用于 URL:
- python - 如何使 Selenium 中的发送密钥起作用?
- php - Laravel 队列不使用 DB 驱动程序执行作业
- javascript - 何时以及何时不对 API 端点之间的 JSON 进行解码或编码
- javascript - 更新 State Context API,如何阻止 state 覆盖 reducer 函数中的当前值?
- python - 如何从熊猫数据框中的日期获取澳大利亚财政年度
- python - django 无法将请求正文保存到 sqlitedb
- flutter - 对话框中提升按钮的设置状态(颤振)?