如何使用gradle构建更多项目,而它们共享的部分将只构建一次?

时间:2018-09-19 12:51:08

标签: java gradle build

我的项目中有三个子项目。它们每个都是可执行的Web应用程序。它们共享相同的核心模块,具有其build.gradle脚本。假设其名称为shared-core。现在,我每个人都有单独的gradle.build和settings.gradle。因此,当我尝试构建所有它们时,核心将被重建三次。但是我想设置gradle脚本,以便shared-core仅重建一次。

我真的很陌生,很抱歉,如果这是一个愚蠢的问题,但是我该怎么办?

谢谢您的帮助。

2 个答案:

答案 0 :(得分:2)

root(main-project)
|
|-shared-core
|   |-build.gradle
|
|-sub-project-a
|   |-build.gradle
|
|-sub-project-b
|   |-build.gradle
|
|-sub-project-c
|   |-build.gradle
|
|-build.gradle
|-settings.gradle

现在在每个子项目上,将共享核心的依赖项添加为compile project(':shared-core')。您可以在multi-project builds.

上找到更多详细信息

答案 1 :(得分:1)

如果我正确理解(来自多个settings.gradle文件),则说明您正在将项目构建为完全独立的版本。 Gradle不了解这些项目之间的关系。

如果您创建一个multi-project build,其中每个项目都是子项目,并且使每个webapp模块都依赖于shared-core,那么Gradle只会构建{{ 1}}项目一次构建。

您仍然可以根据需要配置每个shared-core模块。

如果您不想在一个项目中看到所有Web应用程序,请查看composite builds,但设置起来会有些困难。