MixinGradle is a Gradle plugin which simplifies the build-time complexity of working with the SpongePowered Mixin framework for Java. It currently only supports usage with ForgeGradle.
MixinGradle automates the following tasks:
reobf
tasksTo use MixinGradle you must be using ForgeGradle. To configure the plugin for your build:
Add a source repository and the MixinGradle dependency to your buildScript -> dependencies
block:
buildscript {
repositories {
<add source repository here>
}
dependencies {
...
classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT'
}
}
Please ensure you are using the correct version of MixinGradle for your ForgeGradle version. Versions are not interchangeable.
ForgeGradle Version | Mixin Version | MixinGradle Version To Use |
---|---|---|
2.3 | 0.8 and below | 0.6-SNAPSHOT |
3.0+ | 0.8 | 0.7-SNAPSHOT |
Apply the plugin:
apply plugin: 'org.spongepowered.mixin'
If using Eclipse, you should also enable the Eclipse APT plugin to receive annotation processor support within Eclipse:
apply plugin: 'com.diffplug.eclipse.apt'
Create your mixin
block, specify which sourceSets to process and provide refmap resource names for each one, the generated refmap will be added to the compiler task outputs automatically.
mixin {
add sourceSets.main, "main.refmap.json"
add sourceSets.another, "another.refmap.json"
}
Alternatively, you can simply specify the ext.refMap
property directly on your sourceSet:
sourceSets {
main {
ext.refMap = "main.refmap.json"
}
another {
ext.refMap = "another.refmap.json"
}
}
You can define other mixin AP options in the mixin
block, for example disableTargetValidator
and disableTargetExport
can be configured either by setting them as boolean properties:
mixin {
disableTargetExport = true
disableTargetValidator = true
}
or simply issuing them as directives:
mixin {
disableTargetExport
disableTargetValidator
}
You can also set the default obfuscation environment for generated refmaps, this is the obfuscation environment which will be contributed to the refmap's mappings
node:
mixin {
// Specify "notch" or "searge" here
defaultObfuscationEnv notch
}
MixinGradle can of course be built using Gradle. To perform a build simply execute:
gradlew build
To add the compiled jar to your local maven repository, run:
gradlew publishToMavenLocal