首页 > 解决方案 > 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 吗?我不确定这是要走的路。)

有没有更好的方法来设置它?

标签: gradle

解决方案


这是一个常规的多项目构建。settings.gradle只需在根目录中创建一个文件并包含(而不是includeFlat)每个项目,无论它是应用程序项目还是组件项目。然后在各个build.gradle文件中定义项目之间的依赖关系。

gradle从命令行中调用的目录无关紧要。如果您只想构建单个项目(例如gradle :app1:build),只需使用任务路径。一旦您开始使用推荐的 Gradle 包装器 ( gradlew),无论如何您都需要从根目录调用它。


推荐阅读