从其父项目推断 Gradle 子项目中的依赖项

Infer dependencies in Gradle subproject from its parent project

目前我的 Gradle 项目中有 3 个子项目,结构如下:

Main Project
| 
-- Project A
-- Project B
-- Common Src

项目A依赖于Lib A和Common Src,项目B依赖于Lib B和Common Src。 Lib A 和 Lib B 包含相同 类.

的不同实现

我对 Common Src 项目的计划是容纳所有实用程序 类,必然取决于 Lib A 和 Lib B。

有没有办法设置它,我的 gradle 项目应该是什么样子?

我尝试过的事情:

  1. 我试图将 Common Src 作为子项目移除,并将其包含在项目 A 和项目 B 的源集中。但是,IntelliJ 似乎将 Common Src 标记为项目 A 的源根,即使构建-通过-gradle 有效,我无法让 IntelliJ 识别项目 B 在 Common Src 中也有源根目录。
  2. 将 Lib A 和 Lib B 都添加到 Common Src 的依赖项中,但显然这不起作用。

背景:

我创建了一个与 Forge(项目 A)和 Fabric(项目 B)mod加载器兼容的 Minecraft mod。我在两个项目中都有实用程序 类,它们具有相同的 源代码 但需要编译两次,每次都有不同的依赖项。我不想每次想在实用程序中更改某些内容时都必须编写两次代码 类。

编辑:我找到了解决方法:

  1. Project AProject B中,在它们的每个build.gradle中添加一个任务,将源文件从Common Src复制到每个项目的构建目录。
  2. 配置 Project AProject BsourceSets 以包含我们刚刚复制到的构建文件夹中的源文件
  3. Common Src配置为gradle子项目,并在Common Src的依赖项中添加Lib A(或Lib B)(只是为了获取IntelliJ一些上下文)