Ver Fonte

Update to Loom 0.10

shedaniel há 3 anos atrás
pai
commit
5e338b40da

+ 8 - 8
.github/workflows/pr.yml

@@ -23,11 +23,11 @@ jobs:
     steps:
       - uses: actions/checkout@v2
       
-      - name: Set up JDK 8
+      - name: Set up JDK 17
         uses: actions/setup-java@v2
         with:
-          java-version: 8
-          distribution: 'adopt'
+          java-version: 17
+          distribution: 'temurin'
       
       - name: Cache Gradle wrapper
         uses: actions/cache@v2
@@ -66,7 +66,7 @@ jobs:
     name: "Build"
     strategy:
       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
     if: |
       !contains(github.event.pull_request.title, '[ci skip]')
@@ -77,7 +77,7 @@ jobs:
         uses: actions/setup-java@v2
         with:
           java-version: ${{ matrix.java }}
-          distribution: 'adopt'
+          distribution: 'temurin'
       
       - name: Cache Gradle wrapper
         uses: actions/cache@v2
@@ -114,16 +114,16 @@ jobs:
           rm -f  $HOME/.gradle/caches/journal-1/file-access.bin
           
       - name: Setting mod version
-        if: ${{ matrix.java == '8' }} # Only upload Java 8 artifacts for MC 1.16
+        if: ${{ matrix.java == '17' }}
         run: |
           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 ^base_version= >> $GITHUB_ENV
       - 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
       - uses: actions/upload-artifact@v2
-        if: ${{ matrix.java == '8' }} # Only upload Java 8 artifacts for MC 1.16
+        if: ${{ matrix.java == '17' }}
         with:
           name: ${{ env.package_name }}
           path: |

+ 11 - 11
.github/workflows/push.yml

@@ -33,11 +33,11 @@ jobs:
     steps:
       - uses: actions/checkout@v2
       
-      - name: Set up JDK 8
+      - name: Set up JDK 17
         uses: actions/setup-java@v2
         with:
-          java-version: 8
-          distribution: 'adopt'
+          java-version: 17
+          distribution: 'temurin'
       
       - name: Cache Gradle wrapper
         uses: actions/cache@v2
@@ -77,7 +77,7 @@ jobs:
     name: "Build"
     strategy:
       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
     if: |
       !contains(github.event.head_commit.message, '[ci skip]')
@@ -88,7 +88,7 @@ jobs:
         uses: actions/setup-java@v2
         with:
           java-version: ${{ matrix.java }}
-          distribution: 'adopt'
+          distribution: 'temurin'
       
       - name: Cache Gradle wrapper
         uses: actions/cache@v2
@@ -125,16 +125,16 @@ jobs:
           rm -f  $HOME/.gradle/caches/journal-1/file-access.bin
           
       - name: Setting mod version
-        if: ${{ matrix.java == '8' }} # Only upload Java 8 artifacts for MC 1.16
+        if: ${{ matrix.java == '17' }}
         run: |
           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 ^base_version= >> $GITHUB_ENV
       - 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
       - uses: actions/upload-artifact@v2
-        if: ${{ matrix.java == '8' }} # Only upload Java 8 artifacts for MC 1.16
+        if: ${{ matrix.java == '17' }}
         with:
           name: ${{ env.package_name }}
           path: |
@@ -156,11 +156,11 @@ jobs:
     steps:
       - uses: actions/checkout@v2
       
-      - name: Set up JDK 8
+      - name: Set up JDK 17
         uses: actions/setup-java@v2
         with:
-          java-version: 8
-          distribution: 'adopt'
+          java-version: 17
+          distribution: 'temurin'
           
       - name: Cache Gradle wrapper
         uses: actions/cache@v2

+ 10 - 2
build.gradle

@@ -1,6 +1,6 @@
 plugins {
     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 "com.matthewprenger.cursegradle" version "1.4.0" apply false
     id "maven-publish"
@@ -15,7 +15,11 @@ subprojects {
 
     loom {
         silentMojangMappingsLicense()
-        useFabricMixin = true
+    }
+
+    dependencies {
+        minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}"
+        mappings loom.officialMojangMappings()
     }
 }
 
@@ -100,6 +104,10 @@ allprojects {
             return changes.toString()
         }
     }
+
+    java {
+        withSourcesJar()
+    }
 }
 
 task licenseFormatAll

+ 1 - 8
common/build.gradle

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

+ 0 - 7
common/src/main/resources/fabric.mod.json

@@ -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"
-}

+ 33 - 16
fabric/build.gradle

@@ -1,5 +1,5 @@
 plugins {
-    id "com.github.johnrengelman.shadow" version "5.0.0"
+    id "com.github.johnrengelman.shadow" version "7.0.0"
     id "com.matthewprenger.cursegradle"
 }
 
@@ -7,6 +7,11 @@ loom {
     accessWidener = file("src/main/resources/architectury.accessWidener")
 }
 
+architectury {
+    platformSetupLoomIde()
+    fabric()
+}
+
 configurations {
     common
     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
 }
 
-architectury {
-    platformSetupLoomIde()
-    fabric()
-}
-
 repositories {
     maven { url "https://maven.terraformersmc.com/releases/" }
 }
 
 dependencies {
-    minecraft "com.mojang:minecraft:${rootProject.architectury.minecraft}"
-    mappings minecraft.officialMojangMappings()
     modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
     modImplementation "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_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"
     configurations = [project.configurations.shadowCommon]
-    classifier "shadow"
+    classifier "dev-shadow"
 }
 
 remapJar {
-    dependsOn(shadowJar)
-    input.set(shadowJar.archiveFile)
-    archiveClassifier = "fabric"
+    input.set shadowJar.archiveFile
+    dependsOn shadowJar
+    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 {
     publications {
         mavenFabric(MavenPublication) {
             artifactId = rootProject.archivesBaseName + "-fabric"
-            artifact(remapJar.archivePath) {
-                builtBy build
-                classifier null
-            }
+            from components.java
         }
     }
 

+ 36 - 17
forge/build.gradle

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

+ 1 - 1
gradle/wrapper/gradle-wrapper.properties

@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 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
 zipStorePath=wrapper/dists

+ 4 - 0
settings.gradle

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

+ 0 - 2
testmod-common/build.gradle

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

+ 6 - 2
testmod-common/src/main/java/me/shedaniel/architectury/test/particle/TestParticles.java

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

+ 8 - 3
testmod-fabric/build.gradle

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

+ 15 - 6
testmod-forge/build.gradle

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