More gradle tweaks

- Upgade to Gradle 7.0 and FG 5.0
 - Allow running with any Java version - this now correctly compiles
   Forge with the right version.
 - Upload to Modrinth too. This is entirely untested, so may need some
   tweaking.
This commit is contained in:
Jonathan Coates 2021-06-09 18:00:20 +01:00
parent b323db30ee
commit 8644c4ebf6
No known key found for this signature in database
GPG Key ID: B9E431FF07C98D06
2 changed files with 42 additions and 7 deletions

View File

@ -1,6 +1,5 @@
buildscript { buildscript {
repositories { repositories {
jcenter()
mavenCentral() mavenCentral()
maven { maven {
name = "forge" name = "forge"
@ -9,7 +8,7 @@
} }
dependencies { dependencies {
classpath 'com.google.code.gson:gson:2.8.1' classpath 'com.google.code.gson:gson:2.8.1'
classpath 'net.minecraftforge.gradle:ForgeGradle:4.1.9' classpath 'net.minecraftforge.gradle:ForgeGradle:5.0.6'
} }
} }
@ -17,10 +16,11 @@
id "checkstyle" id "checkstyle"
id "jacoco" id "jacoco"
id "maven-publish" id "maven-publish"
id "com.github.hierynomus.license" version "0.15.0" id "com.github.hierynomus.license" version "0.16.1"
id "com.matthewprenger.cursegradle" version "1.4.0" id "com.matthewprenger.cursegradle" version "1.4.0"
id "com.github.breadmoirai.github-release" version "2.2.12" id "com.github.breadmoirai.github-release" version "2.2.12"
id "org.jetbrains.kotlin.jvm" version "1.3.72" id "org.jetbrains.kotlin.jvm" version "1.3.72"
id "com.modrinth.minotaur" version "1.2.1"
} }
apply plugin: 'net.minecraftforge.gradle' apply plugin: 'net.minecraftforge.gradle'
@ -30,15 +30,30 @@
group = "org.squiddev" group = "org.squiddev"
archivesBaseName = "cc-tweaked-${mc_version}" archivesBaseName = "cc-tweaked-${mc_version}"
def javaVersion = JavaLanguageVersion.of(8)
java { java {
toolchain { toolchain {
languageVersion = JavaLanguageVersion.of(8) languageVersion = javaVersion
} }
withSourcesJar() withSourcesJar()
withJavadocJar() withJavadocJar()
} }
// Tragically java.toolchain.languageVersion doesn't apply to ForgeGradle's
// tasks, so we force all launchers to use the right Java version.
tasks.withType(JavaCompile).configureEach {
javaCompiler = javaToolchains.compilerFor {
languageVersion = javaVersion
}
}
tasks.withType(JavaExec).configureEach {
javaLauncher = javaToolchains.launcherFor {
languageVersion = javaVersion
}
}
minecraft { minecraft {
runs { runs {
client { client {
@ -199,6 +214,7 @@ task luaJavadoc(type: Javadoc) {
e.printStackTrace() e.printStackTrace()
} }
inputs.property "commithash", hash inputs.property "commithash", hash
duplicatesStrategy = DuplicatesStrategy.INCLUDE
from(sourceSets.main.resources.srcDirs) { from(sourceSets.main.resources.srcDirs) {
include 'META-INF/mods.toml' include 'META-INF/mods.toml'
@ -215,6 +231,10 @@ task luaJavadoc(type: Javadoc) {
} }
} }
sourcesJar {
duplicatesStrategy = DuplicatesStrategy.INCLUDE
}
// Web tasks // Web tasks
import org.apache.tools.ant.taskdefs.condition.Os import org.apache.tools.ant.taskdefs.condition.Os
@ -445,6 +465,21 @@ task setupServer(type: Copy) {
} }
} }
import com.modrinth.minotaur.TaskModrinthUpload
tasks.register('publishModrinth', TaskModrinthUpload.class).configure {
dependsOn('assemble', 'reobfJar')
onlyIf {
project.hasProperty('modrinthApiKey')
}
token = project.hasProperty('curseForgeApiKey')
projectId = 'gu7yAYhd'
versionNumber = project.mod_version
uploadFile = jar
addGameVersion(project.mc_version)
addLoader('forge')
}
tasks.withType(GenerateModuleMetadata) { tasks.withType(GenerateModuleMetadata) {
// We can't generate metadata as that includes Forge as a dependency. // We can't generate metadata as that includes Forge as a dependency.
enabled = false enabled = false
@ -519,10 +554,10 @@ task setupServer(type: Copy) {
prerelease false prerelease false
} }
def uploadTasks = ["publish", "curseforge", "githubRelease"] def uploadTasks = ["publish", "curseforge", "publishModrinth", "githubRelease"]
uploadTasks.forEach { tasks.getByName(it).dependsOn checkRelease } uploadTasks.forEach { tasks.getByName(it).dependsOn checkRelease }
task uploadAll(dependsOn: uploadTasks) { task uploadAll(dependsOn: uploadTasks) {
group "upload" group "upload"
description "Uploads to all repositories (Maven, Curse, GitHub release)" description "Uploads to all repositories (Maven, Curse, Modrinth, GitHub release)"
} }

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists