如何在gradle项目中配置依赖项,使其同时作为子模块工作?
我希望在我的项目中使用一个项目作为git子模块,理想情况下不改变上游项目(或者如果有意义的话,以一种合并的方式改变它) 问题是这个项目由两个模块组成,我想直接使用其中的两个模块,其中一个模块也依赖于另一个模块如何在gradle项目中配置依赖项,使其同时作为子模块工作?,gradle,git-submodules,Gradle,Git Submodules,我希望在我的项目中使用一个项目作为git子模块,理想情况下不改变上游项目(或者如果有意义的话,以一种合并的方式改变它) 问题是这个项目由两个模块组成,我想直接使用其中的两个模块,其中一个模块也依赖于另一个模块 myProject ├ submodule | ├ first | | ├ build.gradle: implementation project(":second") <---- this fails if I don't change it to :subm
myProject
├ submodule
| ├ first
| | ├ build.gradle: implementation project(":second") <---- this fails if I don't change it to :submodule:second
| ├ second
| ├ settings.gradle: include ':first', ':second'
├ app
| ├ build.gradle: implementation project(":submodule:first"), implementation project(":submodule:second")
| ├ settings.gradle: include ':submodule:first', ':submodule:second', ':app'
myProject
├ 子模块
| ├ 第一
| | ├ build.gradle:实现项目(“:second”)gradle项目路径(例如”:子模块:second'
)
- 实际上表示项目层次结构。这意味着在
设置中使用include':submodule:second'
。gradle
将隐式创建一个名为submodule
的项目,即使它与构建完全无关
- 不需要匹配目录结构(这只是一种约定)。您可以独立于项目路径(和项目名称)设置项目目录
请从中查看以下示例:
但是,我建议不要使用include
。而是使用includeFild
并设置一个。复合构建在耦合方面不同于经典的多项目构建。由于您的Git子模块指示可以用作独立项目的构建(具有自己的设置.gradle
),因此多项目构建的强耦合似乎不合适。多个设置。gradle
文件在多项目生成中也可能会导致问题,但对于复合生成来说是可以的。谢谢Lukas!我也将研究includeFild
功能,但怀疑我更喜欢include
给我的控件。子模块包含4个模块,其中我们只使用了2个,那么为什么要编译4个模块,如果我们只需要2个模块,为什么还要处理副作用呢?我不认为其他模块将使用复合构建进行编译。您仍然可以表示项目依赖关系,Gradle将只执行构建所需工件所需的任务。
// include two projects, 'foo' and 'foo:bar'
// directories are inferred by replacing ':' with '/'
include 'foo:bar'
// include one project whose project dir does not match the logical project path
include 'baz'
project(':baz').projectDir = file('foo/baz')