如何在多项目项目中有两个不同的 Gradle 版本?
How can I have two different Gradle versions in a multi-project project?
我目前正在尝试确定使用 Forge modding 框架制作特定类型的 Minecraft mod 的可行性。这个框架的一个特点是它需要一个自定义的 Gradle 插件来构建 mods(出于各种版权相关的原因,考虑到 Minecraft 不是 FOSS),但是这个 Gradle 插件仅适用于 Gradle 的古代版本。此外,我希望能够在同一代码库中针对多个 Minecraft 版本(本质上,在共享 java 库项目中保留尽可能多的通用代码),但这需要我有两个不同的子项目ForgeGradle 的版本(Forge 的 Gradle 插件),当然这些版本需要不同的 Gradle 版本。对于这个项目的非 Forge 部分,我也更喜欢使用最新的 Gradle,这当然与 ForgeGradle 不兼容。因此,我问,如何在多项目 Gradle 项目中为不同的子项目设置不同版本的 Gradle?如果这不可能,我如何以 IDE 友好和单一 git 存储库友好的方式(主要是 IntelliJ Idea Community Edition)自动化这些项目之间的连接?我打算将存储库的版本作为一个单元进行跟踪,因此需要将它们放在同一个 git 存储库中。
Gradle 不支持同一个多项目构建中的多个 Gradle 版本。这在复合构建中也不支持。
鉴于限制,最简单的解决方案是使用本地存储库,您将发布到该存储库并从中获取跨项目依赖项。
我目前正在尝试确定使用 Forge modding 框架制作特定类型的 Minecraft mod 的可行性。这个框架的一个特点是它需要一个自定义的 Gradle 插件来构建 mods(出于各种版权相关的原因,考虑到 Minecraft 不是 FOSS),但是这个 Gradle 插件仅适用于 Gradle 的古代版本。此外,我希望能够在同一代码库中针对多个 Minecraft 版本(本质上,在共享 java 库项目中保留尽可能多的通用代码),但这需要我有两个不同的子项目ForgeGradle 的版本(Forge 的 Gradle 插件),当然这些版本需要不同的 Gradle 版本。对于这个项目的非 Forge 部分,我也更喜欢使用最新的 Gradle,这当然与 ForgeGradle 不兼容。因此,我问,如何在多项目 Gradle 项目中为不同的子项目设置不同版本的 Gradle?如果这不可能,我如何以 IDE 友好和单一 git 存储库友好的方式(主要是 IntelliJ Idea Community Edition)自动化这些项目之间的连接?我打算将存储库的版本作为一个单元进行跟踪,因此需要将它们放在同一个 git 存储库中。
Gradle 不支持同一个多项目构建中的多个 Gradle 版本。这在复合构建中也不支持。
鉴于限制,最简单的解决方案是使用本地存储库,您将发布到该存储库并从中获取跨项目依赖项。