Update to Loom 0.10

This commit is contained in:
shedaniel
2021-12-09 01:40:05 +08:00
parent 0a64ecda1d
commit 5e338b40da
13 changed files with 133 additions and 83 deletions

View File

@@ -23,11 +23,11 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Set up JDK 8 - name: Set up JDK 17
uses: actions/setup-java@v2 uses: actions/setup-java@v2
with: with:
java-version: 8 java-version: 17
distribution: 'adopt' distribution: 'temurin'
- name: Cache Gradle wrapper - name: Cache Gradle wrapper
uses: actions/cache@v2 uses: actions/cache@v2
@@ -66,7 +66,7 @@ jobs:
name: "Build" name: "Build"
strategy: strategy:
matrix: matrix:
java: [ 8, 15 ] # Build on Java 8 (version shipped with MC 1.16) and Java 15 (iirc the latest version supported by both loaders on 1.16) java: [ 17 ] # Build on Java 17
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
if: | if: |
!contains(github.event.pull_request.title, '[ci skip]') !contains(github.event.pull_request.title, '[ci skip]')
@@ -77,7 +77,7 @@ jobs:
uses: actions/setup-java@v2 uses: actions/setup-java@v2
with: with:
java-version: ${{ matrix.java }} java-version: ${{ matrix.java }}
distribution: 'adopt' distribution: 'temurin'
- name: Cache Gradle wrapper - name: Cache Gradle wrapper
uses: actions/cache@v2 uses: actions/cache@v2
@@ -114,16 +114,16 @@ jobs:
rm -f $HOME/.gradle/caches/journal-1/file-access.bin rm -f $HOME/.gradle/caches/journal-1/file-access.bin
- name: Setting mod version - name: Setting mod version
if: ${{ matrix.java == '8' }} # Only upload Java 8 artifacts for MC 1.16 if: ${{ matrix.java == '17' }}
run: | run: |
cat $GITHUB_WORKSPACE/gradle.properties | grep ^archives_base_name= >> $GITHUB_ENV cat $GITHUB_WORKSPACE/gradle.properties | grep ^archives_base_name= >> $GITHUB_ENV
cat $GITHUB_WORKSPACE/gradle.properties | grep ^minecraft_version= >> $GITHUB_ENV cat $GITHUB_WORKSPACE/gradle.properties | grep ^minecraft_version= >> $GITHUB_ENV
cat $GITHUB_WORKSPACE/gradle.properties | grep ^base_version= >> $GITHUB_ENV cat $GITHUB_WORKSPACE/gradle.properties | grep ^base_version= >> $GITHUB_ENV
- name: Create package name - name: Create package name
if: ${{ matrix.java == '8' }} # Only upload Java 8 artifacts for MC 1.16 if: ${{ matrix.java == '17' }}
run: echo "package_name=[$minecraft_version] $archives_base_name-$base_version-SNAPSHOT.PR${{ github.event.number }}" >> $GITHUB_ENV run: echo "package_name=[$minecraft_version] $archives_base_name-$base_version-SNAPSHOT.PR${{ github.event.number }}" >> $GITHUB_ENV
- uses: actions/upload-artifact@v2 - uses: actions/upload-artifact@v2
if: ${{ matrix.java == '8' }} # Only upload Java 8 artifacts for MC 1.16 if: ${{ matrix.java == '17' }}
with: with:
name: ${{ env.package_name }} name: ${{ env.package_name }}
path: | path: |

View File

@@ -33,11 +33,11 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Set up JDK 8 - name: Set up JDK 17
uses: actions/setup-java@v2 uses: actions/setup-java@v2
with: with:
java-version: 8 java-version: 17
distribution: 'adopt' distribution: 'temurin'
- name: Cache Gradle wrapper - name: Cache Gradle wrapper
uses: actions/cache@v2 uses: actions/cache@v2
@@ -77,7 +77,7 @@ jobs:
name: "Build" name: "Build"
strategy: strategy:
matrix: matrix:
java: [ 8, 15 ] # Build on Java 8 (version shipped with MC 1.16) and Java 15 (iirc the latest version supported by both loaders on 1.16) java: [ 17 ]
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
if: | if: |
!contains(github.event.head_commit.message, '[ci skip]') !contains(github.event.head_commit.message, '[ci skip]')
@@ -88,7 +88,7 @@ jobs:
uses: actions/setup-java@v2 uses: actions/setup-java@v2
with: with:
java-version: ${{ matrix.java }} java-version: ${{ matrix.java }}
distribution: 'adopt' distribution: 'temurin'
- name: Cache Gradle wrapper - name: Cache Gradle wrapper
uses: actions/cache@v2 uses: actions/cache@v2
@@ -125,16 +125,16 @@ jobs:
rm -f $HOME/.gradle/caches/journal-1/file-access.bin rm -f $HOME/.gradle/caches/journal-1/file-access.bin
- name: Setting mod version - name: Setting mod version
if: ${{ matrix.java == '8' }} # Only upload Java 8 artifacts for MC 1.16 if: ${{ matrix.java == '17' }}
run: | run: |
cat $GITHUB_WORKSPACE/gradle.properties | grep ^archives_base_name= >> $GITHUB_ENV cat $GITHUB_WORKSPACE/gradle.properties | grep ^archives_base_name= >> $GITHUB_ENV
cat $GITHUB_WORKSPACE/gradle.properties | grep ^minecraft_version= >> $GITHUB_ENV cat $GITHUB_WORKSPACE/gradle.properties | grep ^minecraft_version= >> $GITHUB_ENV
cat $GITHUB_WORKSPACE/gradle.properties | grep ^base_version= >> $GITHUB_ENV cat $GITHUB_WORKSPACE/gradle.properties | grep ^base_version= >> $GITHUB_ENV
- name: Create package name - name: Create package name
if: ${{ matrix.java == '8' }} # Only upload Java 8 artifacts for MC 1.16 if: ${{ matrix.java == '17' }}
run: echo "package_name=[$minecraft_version] $archives_base_name-$base_version.${{ github.run_number }}" >> $GITHUB_ENV run: echo "package_name=[$minecraft_version] $archives_base_name-$base_version.${{ github.run_number }}" >> $GITHUB_ENV
- uses: actions/upload-artifact@v2 - uses: actions/upload-artifact@v2
if: ${{ matrix.java == '8' }} # Only upload Java 8 artifacts for MC 1.16 if: ${{ matrix.java == '17' }}
with: with:
name: ${{ env.package_name }} name: ${{ env.package_name }}
path: | path: |
@@ -156,11 +156,11 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Set up JDK 8 - name: Set up JDK 17
uses: actions/setup-java@v2 uses: actions/setup-java@v2
with: with:
java-version: 8 java-version: 17
distribution: 'adopt' distribution: 'temurin'
- name: Cache Gradle wrapper - name: Cache Gradle wrapper
uses: actions/cache@v2 uses: actions/cache@v2

View File

@@ -1,6 +1,6 @@
plugins { plugins {
id "architectury-plugin" version "3.4-SNAPSHOT" id "architectury-plugin" version "3.4-SNAPSHOT"
id "dev.architectury.loom" version "0.7.3-SNAPSHOT" apply false id "dev.architectury.loom" version "0.10.0-SNAPSHOT" apply false
id "org.cadixdev.licenser" version "0.6.1" id "org.cadixdev.licenser" version "0.6.1"
id "com.matthewprenger.cursegradle" version "1.4.0" apply false id "com.matthewprenger.cursegradle" version "1.4.0" apply false
id "maven-publish" id "maven-publish"
@@ -15,7 +15,11 @@ subprojects {
loom { loom {
silentMojangMappingsLicense() silentMojangMappingsLicense()
useFabricMixin = true }
dependencies {
minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}"
mappings loom.officialMojangMappings()
} }
} }
@@ -100,6 +104,10 @@ allprojects {
return changes.toString() return changes.toString()
} }
} }
java {
withSourcesJar()
}
} }
task licenseFormatAll task licenseFormatAll

View File

@@ -3,8 +3,6 @@ loom {
} }
dependencies { dependencies {
minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}"
mappings minecraft.officialMojangMappings()
// We depend on fabric loader here to use the fabric @Environment annotations // We depend on fabric loader here to use the fabric @Environment annotations
// Do NOT use other classes from fabric loader // Do NOT use other classes from fabric loader
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
@@ -19,12 +17,7 @@ publishing {
publications { publications {
mavenCommon(MavenPublication) { mavenCommon(MavenPublication) {
artifactId = rootProject.archivesBaseName artifactId = rootProject.archivesBaseName
artifact(file("${project.buildDir}/libs/${project.archivesBaseName}-${project.version}.jar")) { from components.java
builtBy build
}
artifact(sourcesJar) {
builtBy remapSourcesJar
}
} }
} }

View File

@@ -1,7 +0,0 @@
{
"_comment": "This file is here to make fabric loader load this on the Knot classloader.",
"schemaVersion": 1,
"id": "architectury-common",
"version": "0.0.1",
"accessWidener": "architectury.accessWidener"
}

View File

@@ -1,5 +1,5 @@
plugins { plugins {
id "com.github.johnrengelman.shadow" version "5.0.0" id "com.github.johnrengelman.shadow" version "7.0.0"
id "com.matthewprenger.cursegradle" id "com.matthewprenger.cursegradle"
} }
@@ -7,6 +7,11 @@ loom {
accessWidener = file("src/main/resources/architectury.accessWidener") accessWidener = file("src/main/resources/architectury.accessWidener")
} }
architectury {
platformSetupLoomIde()
fabric()
}
configurations { configurations {
common common
shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this. shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this.
@@ -15,18 +20,11 @@ configurations {
developmentFabric.extendsFrom common developmentFabric.extendsFrom common
} }
architectury {
platformSetupLoomIde()
fabric()
}
repositories { repositories {
maven { url "https://maven.terraformersmc.com/releases/" } maven { url "https://maven.terraformersmc.com/releases/" }
} }
dependencies { dependencies {
minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}"
mappings minecraft.officialMojangMappings()
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}" modImplementation "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}"
modCompileOnly "com.terraformersmc:modmenu:${rootProject.mod_menu_version}" modCompileOnly "com.terraformersmc:modmenu:${rootProject.mod_menu_version}"
@@ -50,23 +48,42 @@ shadowJar {
relocate "net.jodah.typetools", "me.shedaniel.architectury.shadowed.impl.net.jodah.typetools" relocate "net.jodah.typetools", "me.shedaniel.architectury.shadowed.impl.net.jodah.typetools"
configurations = [project.configurations.shadowCommon] configurations = [project.configurations.shadowCommon]
classifier "shadow" classifier "dev-shadow"
} }
remapJar { remapJar {
dependsOn(shadowJar) input.set shadowJar.archiveFile
input.set(shadowJar.archiveFile) dependsOn shadowJar
archiveClassifier = "fabric" classifier null
}
jar {
classifier "dev"
}
sourcesJar {
afterEvaluate {
[":common"].forEach {
def depSources = project(it).sourcesJar
dependsOn depSources
from(depSources.archiveFile.map { zipTree(it) }) {
exclude "architectury.accessWidener"
}
}
}
}
components.java {
withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) {
skip()
}
} }
publishing { publishing {
publications { publications {
mavenFabric(MavenPublication) { mavenFabric(MavenPublication) {
artifactId = rootProject.archivesBaseName + "-fabric" artifactId = rootProject.archivesBaseName + "-fabric"
artifact(remapJar.archivePath) { from components.java
builtBy build
classifier null
}
} }
} }

View File

@@ -1,10 +1,17 @@
plugins { plugins {
id "com.github.johnrengelman.shadow" version "5.0.0" id "com.github.johnrengelman.shadow" version "7.0.0"
id "com.matthewprenger.cursegradle" id "com.matthewprenger.cursegradle"
} }
loom { loom {
mixinConfigs = ["architectury.mixins.json", "architectury-common.mixins.json"] forge {
mixinConfigs "architectury.mixins.json", "architectury-common.mixins.json"
}
}
architectury {
platformSetupLoomIde()
forge()
} }
configurations { configurations {
@@ -15,14 +22,7 @@ configurations {
developmentForge.extendsFrom common developmentForge.extendsFrom common
} }
architectury {
platformSetupLoomIde()
forge()
}
dependencies { dependencies {
minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}"
mappings loom.officialMojangMappings()
forge "net.minecraftforge:forge:${rootProject.architectury.minecraft}-${rootProject.forge_version}" forge "net.minecraftforge:forge:${rootProject.architectury.minecraft}-${rootProject.forge_version}"
implementation "net.jodah:typetools:0.6.2" implementation "net.jodah:typetools:0.6.2"
shadowCommon "net.jodah:typetools:0.6.2" shadowCommon "net.jodah:typetools:0.6.2"
@@ -45,23 +45,42 @@ shadowJar {
exclude "architectury.common.json" exclude "architectury.common.json"
configurations = [project.configurations.shadowCommon] configurations = [project.configurations.shadowCommon]
classifier "shadow" classifier "dev-shadow"
} }
remapJar { remapJar {
dependsOn(shadowJar) input.set shadowJar.archiveFile
input.set(shadowJar.archivePath) dependsOn shadowJar
archiveClassifier = "forge" classifier null
}
jar {
classifier "dev"
}
sourcesJar {
afterEvaluate {
[":common"].forEach {
def depSources = project(it).sourcesJar
dependsOn depSources
from(depSources.archiveFile.map { zipTree(it) }) {
exclude "architectury.accessWidener"
}
}
}
}
components.java {
withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) {
skip()
}
} }
publishing { publishing {
publications { publications {
mavenForge(MavenPublication) { mavenForge(MavenPublication) {
artifactId = rootProject.archivesBaseName + "-forge" artifactId = rootProject.archivesBaseName + "-forge"
artifact(remapJar.archivePath) { from components.java
builtBy build
classifier null
}
} }
} }

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-7.0-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

View File

@@ -7,6 +7,10 @@ pluginManagement {
} }
} }
if (JavaVersion.current().ordinal() + 1 < 16) {
throw new IllegalStateException("Please run gradle with Java 16+!")
}
include("common") include("common")
include("fabric") include("fabric")
include("forge") include("forge")

View File

@@ -1,6 +1,4 @@
dependencies { dependencies {
minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}"
mappings loom.officialMojangMappings()
// We depend on fabric loader here to use the fabric @Environment annotations // We depend on fabric loader here to use the fabric @Environment annotations
// Do NOT use other classes from fabric loader // Do NOT use other classes from fabric loader
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"

View File

@@ -19,6 +19,7 @@
package me.shedaniel.architectury.test.particle; package me.shedaniel.architectury.test.particle;
import me.shedaniel.architectury.event.events.client.ClientLifecycleEvent;
import me.shedaniel.architectury.platform.Platform; import me.shedaniel.architectury.platform.Platform;
import me.shedaniel.architectury.registry.DeferredRegister; import me.shedaniel.architectury.registry.DeferredRegister;
import me.shedaniel.architectury.registry.ParticleProviderRegistry; import me.shedaniel.architectury.registry.ParticleProviderRegistry;
@@ -38,7 +39,10 @@ public class TestParticles {
public static void initialize() { public static void initialize() {
PARTICLE_TYPES.register(); PARTICLE_TYPES.register();
if (Platform.getEnvironment() == Env.CLIENT) if (Platform.getEnvironment() == Env.CLIENT) {
ParticleProviderRegistry.register(TEST_PARTICLE.get(), HeartParticle.Provider::new); ClientLifecycleEvent.CLIENT_SETUP.register(instance -> {
ParticleProviderRegistry.register(TEST_PARTICLE.get(), HeartParticle.Provider::new);
});
}
} }
} }

View File

@@ -1,5 +1,5 @@
plugins { plugins {
id "com.github.johnrengelman.shadow" version "5.0.0" id "com.github.johnrengelman.shadow" version "7.0.0"
id "com.matthewprenger.cursegradle" id "com.matthewprenger.cursegradle"
} }
@@ -8,9 +8,14 @@ architectury {
fabric() fabric()
} }
configurations {
common
compileClasspath.extendsFrom common
runtimeClasspath.extendsFrom common
developmentFabric.extendsFrom common
}
dependencies { dependencies {
minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}"
mappings loom.officialMojangMappings()
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}" modImplementation "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}"

View File

@@ -1,13 +1,17 @@
plugins { plugins {
id "com.github.johnrengelman.shadow" version "5.0.0" id "com.github.johnrengelman.shadow" version "7.0.0"
id "com.matthewprenger.cursegradle" id "com.matthewprenger.cursegradle"
} }
loom { loom {
mixinConfig "architectury.mixins.json" forge {
mixinConfig "architectury.mixins.json"
localMods { localMods {
it.add(project(":forge").sourceSets.main) forge {
it.add(project(":forge").sourceSets.main)
}
}
} }
} }
@@ -16,9 +20,14 @@ architectury {
forge() forge()
} }
configurations {
common
compileClasspath.extendsFrom common
runtimeClasspath.extendsFrom common
developmentForge.extendsFrom common
}
dependencies { dependencies {
minecraft "com.mojang:minecraft:${gradle.rootProject.architectury.minecraft}"
mappings loom.officialMojangMappings()
forge "net.minecraftforge:forge:${gradle.rootProject.architectury.minecraft}-${rootProject.forge_version}" forge "net.minecraftforge:forge:${gradle.rootProject.architectury.minecraft}-${rootProject.forge_version}"
implementation project(path: ":forge", configuration: "namedElements") implementation project(path: ":forge", configuration: "namedElements")