ForgeGradle 5 -> 6 迁移入门
这是一个关于如何将你的构建脚本从ForgeGradle 5迁移到6的高级、非详尽的概述。
如果有任何不正确或遗漏的信息,请在下面留言。谢谢!
添加Foojay Toolchains插件
Gradle现在使用Foojay Toolchains插件以管理Java工具链。必须将插件添加到settings.gradle[.kts]中:
使用Gradle DSL:
// 在settings.gradle中
plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0'
}
使用Kotlin DSL:
// 在settings.gradle.kts中
plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "0.5.0"
}
将Gradle升级到8.1.1
首先,你需要更新Gradle Wrapper以使用8.1.1。你可以在Gradle的迁移指南上找到有关从7迁移到8的其他信息。
这可以通过以下两种方式之一实现:
gradle wrapper
首选选项是将gradle wrapper命令与--gradle-version选项一起使用。
# 在Gradle项目的根目录内部
./gradlew wrapper --gradle-version=8.1.1
gradle-wrapper.properties
不建议使用此方法,并且只有在上面的gradlew wrapper命令失败时才应使用此方法。
更新gradle/wrapper/gradle-wrapper.properties中的distributionUrl属性中的版本。然后运行./gradlew wrapper。
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
更新ForgeGradle插件版本
更新Gradle后,将build.gradle[.kts]中的ForgeGradle版本更新为[6.0,6.2):
使用Gradle DSL:
// 在build.gradle中
plugins {
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
}
使用Kotlin DSL:
// 在build.gradle.kts中
plugins {
id("net.minecraftforge.gradle") version "[6.0,6.2)"
}
从运行配置中移除forceExit
ForgeGradle现已删除运行配置中的forceExit属性。对运行任务的更改仅适用于当前项目,不适用于任何子项目。
次要的添加、变更和移除
重新混淆的Classpath继承
如果你在reobf*任务配置中使用classpath.from来声明额外的库,则需要考虑reobf*任务;它应该迁移到libraries.from属性。
Eclipse启动器组(Launcher Groups)
如果ForgeGradle的设置使得Eclipse应该在开始游戏之前运行Gradle任务,那么你必须从Launch Group文件夹执行运行配置。只有在minecraft块中启用了新属性时,情况才会如此。

ModConfig中resources和classes的移除
运行配置的mods块中的属性resources和classes已从ForgeGradle 6中移除。