Skip to main content
This guide covers building the Soul Link Speedrun mod from source code using Gradle.

Build Commands

Standard Build

To compile the mod and generate the JAR file:
./gradlew build
The compiled JAR will be located in:
build/libs/soullink-1.1.7.jar

Clean Build

To remove previous build artifacts and perform a fresh build:
./gradlew clean build

Generate Sources

To generate Minecraft source files for IDE support:
./gradlew genSources

Build Process

1

Process resources

Gradle processes fabric.mod.json and expands version properties from gradle.properties.The mod version (1.1.7) is automatically inserted into the mod metadata.
2

Compile Java code

All Java source code is compiled with:
  • Source compatibility: Java 21
  • Target compatibility: Java 21
  • Release version: 21
3

Remap to production

Fabric Loom remaps the compiled code from Yarn mappings to production (obfuscated) mappings for compatibility with Minecraft.
4

Package JAR

The final JAR is created with:
  • Compiled and remapped classes
  • Resources (including fabric.mod.json)
  • LICENSE file (renamed to LICENSE_soullink)
  • Bundled Fantasy library (0.7.0+1.21.11)

Publishing to Maven

The project is configured with Maven publishing support.

Local Maven Repository

To publish to your local Maven repository:
./gradlew publishToMavenLocal
This installs the artifact at:
~/.m2/repository/net/zenzty/soullink/soullink/1.1.7/

Remote Maven Repository

To configure publishing to a remote Maven repository, add your repository to the publishing.repositories block in build.gradle:
publishing {
    repositories {
        maven {
            name = "MyRepo"
            url = "https://maven.example.com/releases"
            credentials {
                username = project.findProperty("repoUser") ?: System.getenv("REPO_USER")
                password = project.findProperty("repoPassword") ?: System.getenv("REPO_PASSWORD")
            }
        }
    }
}
Then publish with:
./gradlew publish

Build Output

After a successful build, you’ll find:
FileLocationDescription
Mod JARbuild/libs/soullink-1.1.7.jarProduction-ready mod file
Dev JARbuild/libs/soullink-1.1.7-dev.jarDevelopment version with Yarn mappings

Gradle Properties

Key properties from gradle.properties:
# Mod Properties
mod_version=1.1.7
maven_group=net.zenzty.soullink
archives_base_name=soullink

# Minecraft & Fabric
minecraft_version=1.21.11
loader_version=0.18.4
fabric_api_version=0.141.1+1.21.11

Troubleshooting

If you encounter “Out of Memory” errors during build, increase the Gradle JVM memory in gradle.properties:
org.gradle.jvmargs=-Xmx2G

Common Issues

  • Build fails with Java version error: Ensure you’re using JDK 21
  • Dependency resolution fails: Check your internet connection and Gradle cache
  • Remap task fails: Try ./gradlew clean and rebuild

Build docs developers (and LLMs) love