从其父项目推断 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 项目应该是什么样子?
我尝试过的事情:
- 我试图将 Common Src 作为子项目移除,并将其包含在项目 A 和项目 B 的源集中。但是,IntelliJ 似乎将 Common Src 标记为项目 A 的源根,即使构建-通过-gradle 有效,我无法让 IntelliJ 识别项目 B 在 Common Src 中也有源根目录。
- 将 Lib A 和 Lib B 都添加到 Common Src 的依赖项中,但显然这不起作用。
背景:
我创建了一个与 Forge(项目 A)和 Fabric(项目 B)mod加载器兼容的 Minecraft mod。我在两个项目中都有实用程序 类,它们具有相同的 源代码 但需要编译两次,每次都有不同的依赖项。我不想每次想在实用程序中更改某些内容时都必须编写两次代码 类。
编辑:我找到了解决方法:
- 在
Project A
和Project B
中,在它们的每个build.gradle
中添加一个任务,将源文件从Common Src
复制到每个项目的构建目录。
- 配置
Project A
和 Project B
的 sourceSets
以包含我们刚刚复制到的构建文件夹中的源文件
- 将
Common Src
配置为gradle子项目,并在Common Src
的依赖项中添加Lib A
(或Lib B
)(只是为了获取IntelliJ一些上下文)
目前我的 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 项目应该是什么样子?
我尝试过的事情:
- 我试图将 Common Src 作为子项目移除,并将其包含在项目 A 和项目 B 的源集中。但是,IntelliJ 似乎将 Common Src 标记为项目 A 的源根,即使构建-通过-gradle 有效,我无法让 IntelliJ 识别项目 B 在 Common Src 中也有源根目录。
- 将 Lib A 和 Lib B 都添加到 Common Src 的依赖项中,但显然这不起作用。
背景:
我创建了一个与 Forge(项目 A)和 Fabric(项目 B)mod加载器兼容的 Minecraft mod。我在两个项目中都有实用程序 类,它们具有相同的 源代码 但需要编译两次,每次都有不同的依赖项。我不想每次想在实用程序中更改某些内容时都必须编写两次代码 类。
编辑:我找到了解决方法:
- 在
Project A
和Project B
中,在它们的每个build.gradle
中添加一个任务,将源文件从Common Src
复制到每个项目的构建目录。 - 配置
Project A
和Project B
的sourceSets
以包含我们刚刚复制到的构建文件夹中的源文件 - 将
Common Src
配置为gradle子项目,并在Common Src
的依赖项中添加Lib A
(或Lib B
)(只是为了获取IntelliJ一些上下文)