3 Commits

Author SHA1 Message Date
LambdAurora
e7e85542be Add comment on targetJavaVersion. 2021-02-12 13:01:19 +01:00
LambdAurora
0cf9d4f2a8 Revert the toolchain change, add a targetJavaVersion field. 2021-02-12 12:48:54 +01:00
LambdAurora
2e71bcc464 Simplify buildscript and use Gradle toolchain feature. 2021-02-12 11:03:51 +01:00
7 changed files with 145 additions and 132 deletions

View File

@@ -12,7 +12,9 @@ jobs:
matrix:
# Use these Java versions
java: [
16 # Minimum supported by Minecraft
1.8, # Minimum supported by Minecraft
11, # Current Java LTS
15 # Latest version
]
# and run on both Linux and Windows
os: [ubuntu-20.04, windows-latest]
@@ -32,7 +34,7 @@ jobs:
- name: build
run: ./gradlew build
- name: capture build artifacts
if: ${{ runner.os == 'Linux' && matrix.java == '16' }} # Only upload artifacts built from latest java on one OS
if: ${{ runner.os == 'Linux' && matrix.java == '11' }} # Only upload artifacts built from LTS java on one OS
uses: actions/upload-artifact@v2
with:
name: Artifacts

View File

@@ -1,24 +1,15 @@
plugins {
id 'fabric-loom' version '0.8-SNAPSHOT'
id 'fabric-loom' version '0.5-SNAPSHOT'
id 'maven-publish'
}
sourceCompatibility = JavaVersion.VERSION_16
targetCompatibility = JavaVersion.VERSION_16
archivesBaseName = project.archives_base_name
version = project.mod_version
group = project.maven_group
// Obtains mod version. change file reference if your fabric.mod.json is located elsewhere
import groovy.json.JsonSlurper
version = new JsonSlurper().parse(file('src/main/resources/fabric.mod.json')).version
// You can use logger.lifecycle to print out messages like System.out; double-quote strings convert
// ${statement} templates to statement values, such as method calls, while single-quote strings don't.
// getXxx() calls can be simplified to xxx, like project.getGradle().getGradleVersion() is project.gradle.gradleVersion.
// Since the buildscript is provided with a project, you can call project methods without qualification if there is no
// ambiguity, such as file() call to retrieve version is project.file(), and gradle is project.getGradle()
logger.lifecycle "Setting up ${archivesBaseName} ${version} with Gradle ${gradle.gradleVersion}"
// This field defines the Java version your mod target.
// The Minecraft launcher currently installs Java 8 for users, so your mod probably wants to target Java 8 too.
def targetJavaVersion = 8
repositories {
// Add repositories to retrieve artifacts from in here.
@@ -36,6 +27,20 @@ dependencies {
// Fabric API. This is technically optional, but you probably want it anyway.
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
// You can also use individual Fabric API modules with
// `modImplementation fabricApi.module('module-name', project.fabric_version)`
// If you do this, you will need to depend individually on each modules in the fabric.mod.json file.
// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs.
// You may need to force-disable transitiveness on them.
}
processResources {
inputs.property "version", project.version
filesMatching("fabric.mod.json") {
expand "version": project.version
}
}
tasks.withType(JavaCompile).configureEach {
@@ -45,11 +50,17 @@ tasks.withType(JavaCompile).configureEach {
// If Javadoc is generated, this must be specified in that task too.
it.options.encoding = "UTF-8"
// Minecraft 1.17 (21w19a) upwards uses Java 16.
it.options.release = 16
// JDK 9 introduced a new way of specifying this that will make sure no newer classes or methods are used.
// We'll use that if it's available, but otherwise we'll use the older option.
if (JavaVersion.current().isJava9Compatible()) {
it.options.release = targetJavaVersion
}
}
java {
sourceCompatibility = JavaVersion.toVersion(targetJavaVersion)
targetCompatibility = JavaVersion.toVersion(targetJavaVersion)
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
// if it is present.
// If you remove this line, sources will not be generated.

View File

@@ -2,15 +2,16 @@
org.gradle.jvmargs=-Xmx1G
# Fabric Properties
# check these on https://fabricmc.net/versions.html
minecraft_version=1.17
yarn_mappings=1.17+build.13
loader_version=0.11.6
# check these on https://fabricmc.net/use
minecraft_version=1.16.5
yarn_mappings=1.16.5+build.1
loader_version=0.11.0
# Mod Properties
# edit your mod version in fabric.mod.json
mod_version = 1.0.0
maven_group = com.example
archives_base_name = fabric-example-mod
# Dependencies
fabric_version=0.36.0+1.17
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
fabric_version=0.29.3+1.16

View File

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

View File

@@ -1,7 +1,7 @@
{
"schemaVersion": 1,
"id": "modid",
"version": "1.0.0",
"version": "${version}",
"name": "Example Mod",
"description": "This is an example description! Tell everyone what your mod is about!",
@@ -27,10 +27,9 @@
],
"depends": {
"fabricloader": ">=0.11.3",
"fabricloader": ">=0.7.4",
"fabric": "*",
"minecraft": "1.17.x",
"java": ">=16"
"minecraft": "1.16.x"
},
"suggests": {
"another-mod": "*"

View File

@@ -2,7 +2,7 @@
"required": true,
"minVersion": "0.8",
"package": "net.fabricmc.example.mixin",
"compatibilityLevel": "JAVA_16",
"compatibilityLevel": "JAVA_8",
"mixins": [
],
"client": [