Giter Club home page Giter Club logo

mixingradle's Introduction

MixinGradle Logo

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.

Features

MixinGradle automates the following tasks:

Using MixinGradle

To use MixinGradle you must be using ForgeGradle. To configure the plugin for your build:

  1. 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
  1. 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'
  1. 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"
}
  1. 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"
       }
}
  1. 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
}

Building MixinGradle

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

mixingradle's People

Contributors

killjoy1221 avatar lexmanos avatar mumfrey avatar shadows-of-fire avatar sizableshrimp avatar stephan-gh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mixingradle's Issues

When running the IDE command in 1.17, a missing annotation error is thrown.

It might be my fault, but here's the message:

ForgeGradle: 5.1+
Forge: 1.17.1-37.0.7
MixinGradle: 0.7-SNAPSHOT

What went wrong:
A problem was found with the configuration of task ':eclipseFactoryPath' (type 'MixinEclipse.EclipseFactoryPath').

In plugin 'org.spongepowered.mixin' type 'org.spongepowered.asm.gradle.plugins.MixinEclipse.EclipseFactoryPath' property 'config' has @input annotation used on property of type 'Configuration'.

Reason: A property of type 'Configuration' annotated with @input cannot determine how to interpret the file.

sonarqube fails to due GString args options

When using together with the sonarqube plugin, a ClassCastException is thrown:

Caused by: java.lang.ClassCastException: class org.codehaus.groovy.runtime.GStringImpl cannot be cast to class java.lang.String (org.codehaus.groovy.runtime.GStringImpl is in unnamed module of loader org.gradle.internal.classloader.VisitableURLClassLoader @5fdef03a; java.lang.String is in module java.base of loader 'bootstrap')
	at org.sonarqube.gradle.JavaCompilerUtils.configureCompatibilityOptions(JavaCompilerUtils.java:92)
	at org.sonarqube.gradle.JavaCompilerUtils.extractConfiguration(JavaCompilerUtils.java:60)
	at org.sonarqube.gradle.JavaCompilerUtils.extractJavaCompilerConfigurationFromCompileTasks(JavaCompilerUtils.java:49)
	at org.sonarqube.gradle.SonarPropertyComputer.populateJdkProperties(SonarPropertyComputer.java:255)
	at org.sonarqube.gradle.SonarPropertyComputer.lambda$configureForJava$3(SonarPropertyComputer.java:220)
	at org.gradle.api.internal.collections.CollectionFilter$1.execute(CollectionFilter.java:59)
	at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:161)
	at org.gradle.api.internal.DefaultDomainObjectCollection.withType(DefaultDomainObjectCollection.java:203)
	at org.sonarqube.gradle.SonarPropertyComputer.configureForJava(SonarPropertyComputer.java:220)
	at org.sonarqube.gradle.SonarPropertyComputer.addGradleDefaults(SonarPropertyComputer.java:457)
	at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:99)
	at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:146)
	at org.sonarqube.gradle.SonarPropertyComputer.computeSonarProperties(SonarPropertyComputer.java:86)

The sonaqube plugin attempts to access the compiler args here, but expects a List<String>.

The mixingradle plugin sets compiler args here using a GString template.

Usually groovy should automatically call toString on them, but for some reason it does not seem to do it here, because the compiler arguments contain objects of type GString when inspected in the debugger.

This can also only be recreated on the first run and can be reproduced by applying both the mixingradle and the sonarqube plugin and running clean build sonar.

A call to toString on all template strings that are appended to the compiler args could solve this problem

No refmap.json gets generated when putting mixins under src/main/scala

I am trying to use mixins (java classes) in a scala mod but I am running into problems where the refmap file is not generated if I put the mixins under src/main/scala. If I put them into src/main/java it works but then I cannot call stuff from src/main/scala from my mixins. Since I am already using this project layout on fabric I thought it might also work for forge with MixinGradle. Mabe there is a workaround for this.
EDIT: well, I think I have a not-so-great solution but at least it's a solution. Will post this here once I've automated and verified it.
EDIT:
yes I know this is not the best solution and pretty convoluted but here it is:
java-mixin-stubber is a java source code transformer that drops the method bodies and imports that might reference anything in src/main/scala.

buildscript {
    dependencies {
        classpath 'de.lolhens:java-mixin-stubber:0.0.2'
    }
}

def mixinstubsDir = file("$compileJava.temporaryDir/mixinstubs")

sourceSets.main.java.srcDirs += mixinstubsDir

def mixinstubs = task('mixinstubs') {
    doLast {
        delete(mixinstubsDir)
        de.lolhens.jstubber.Stubber.MIXIN.stubDirectory(sourceSets.main.scala.srcDirs[0].toPath(), mixinstubsDir.toPath())
    }
}

compileJava.dependsOn(mixinstubs)

compileJava.doLast {
    delete(compileJava.destinationDir)
    delete(mixinstubsDir)
}

compileScala.doFirst {
    compileScala.options.compilerArgs += compileJava.options.compilerArgs
}

mixin {
    add sourceSets.main, "${mod_id}.refmap.json"
}

should I leave this issue open?

"gradlew publishToMavenLocal" not working by default

Tried following the ReadMe, but that task isn't found.
Needed to add apply plugin: 'maven-publish' for that to work.
You probably either want to add that into the ReadMe or add that plugin into the build.gradle.

Use of jar.archiveName causes issues on gradle 8

The use of jar.archiveName, a deprecated-for-removal property, in MixinGradle causes issues attempting to run it using gradle 8.1.1.

See a use of the property here: https://github.com/SpongePowered/MixinGradle/blob/df801a4aff9ab132441df49d279d1d26f3261e05/src/main/groovy/org/spongepowered/asm/gradle/plugins/MixinExtension.groovy#LL201C34-L201C34.

The alternative seems to be to read the file name with archiveFileName instead. I discovered this issue while testing an attempt to update ForgeGradle to gradle 8

Refmap doesn't generate

Hi, I created this issue because when I test my tweaker client created with forgegradle and mixingradle, I get this warning :

[10:06:12] [main/WARN]: Reference map 'mixins.arkemys.refmap.json' for mixins.arkemys.json could not be read. If this is a development environment you can ignore this message

Then I get this error :

[10:06:12] [main/FATAL]: Mixin apply failed mixins.arkemys.json:client.MixinMinecraft -> ave

Then my client crashes.

I think it is coming from the fact that my refmap isn't generating. I tried applying many fixes but it didn't solve my problem.

By the way here is my build.gradle :

https://pastebin.com/LF7Fx9bd

Compatibility with ForgeGradle 5 remapJar Task

I am running the latest snapshot of MixinGradle, together with the latest ForgeGradle 5 on J16 and Gradle 7.1, and I am running into this exception when building my project:

Execution failed for task ':reobfJar'.
Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method extraMapping() for arguments [D:\ae2-forge\build\tmp\compileJava\compileJava-mappings.tsrg] on task ':reobfJar' of type net.minecraftforge.gradle.userdev.tasks.RenameJarInPlace.
	at org.gradle.internal.metaobject.AbstractDynamicObject$CustomMissingMethodExecutionFailed.<init>(AbstractDynamicObject.java:190)
	at org.gradle.internal.metaobject.AbstractDynamicObject.methodMissingException(AbstractDynamicObject.java:184)
	at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:167)
	at net.minecraftforge.gradle.userdev.tasks.RenameJarInPlace_Decorated.invokeMethod(Unknown Source)
	at org.spongepowered.asm.gradle.plugins.MixinExtension$_configure_closure17$_closure27.doCall(MixinExtension.groovy:770)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at org.gradle.api.internal.AbstractTask$ClosureTaskAction.doExecute(AbstractTask.java:699)

This was probably caused by ForgeGradle moving to Gradle properties in this commit:
MinecraftForge/ForgeGradle@6b322d4#diff-bd94873d0808b53df6cb08cbe7d1cb4f2aa4668668438b1e6df8b3a22937dd1aR83

RunServer not Configed, AnnotationProcessor Missing, instructions fail.

First, working mostly.

Second: setup did not set RunServer to use mixins, but it did set the RunClient.

Third, on IntelliJ, and using Minecraft Dev, yes, a constant error is made of "mixin requires an annotation processor, if you use ...SNAPSHOT:0.1.2 then you use ...SNAPSHOT:0.1.2:Processor. Well, SNAPSHOT:0.7 does not have a processor. The only one I could find was 0.8.2, thanks to CorgiTacos mods. So, the instructions are wrong, or are at least wrong for this version. I am not sure if that is your configs or not theirs.

Anyways, as long as I can fix it, it is not a huge deal.

Incompatible with Gradle 7

MixinGradle appears to be incompatible with Gradle 7 at the moment. I've tried doing a PR myself however my Gradle plugin dev knowledge is very barebones so I didn't get far.

To reproduce:

  1. Download the latest Forge MDK
  2. gradlew wrapper --gradle-version 7.0.2
  3. Change ForgeGradle version to 5.0.1
  4. Apply MixinGradle and the annotationProcessor line as usual
  5. gradlew build

Stacktrace: https://pastebin.com/raw/YpQTFTGB

Error parsing TSRG file.

I'm trying to build and whenever I do it fails complaining that it found an inline member before the class mapping for searge in output.tsrg specifically tsrg2 left right which is the first line of the file. Is there something I need to do to keep that line from being there or is it a bug that it errors out on that line?

Build which requires this fails.

I'm not 100% sure if this is the right place to put this, but I'm trying to build a program and it fails with the error

Could not resolve all artifacts for configuration ':classpath'.
Could not resolve org.spongepowered:mixingradle:0.6-SNAPSHOT.
Required by:
project :
> Could not resolve org.spongepowered:mixingradle:0.6-SNAPSHOT.
> Unable to load Maven meta-data from http://repo.spongepowered.org/maven/org/spongepowered/mixingradle/0.6-SNAPSHOT/maven-metadata.xml.
> Could not get resource 'http://repo.spongepowered.org/maven/org/spongepowered/mixingradle/0.6-SNAPSHOT/maven-metadata.xml'.
> Could not GET 'http://repo.spongepowered.org/maven/org/spongepowered/mixingradle/0.6-SNAPSHOT/maven-metadata.xml'. Received status code 520 from server: Origin Error
Could I get some help?

Contribute generated SRG files to ForgeGradle's source remapping task

As of ForgeGradle 2 it is now reobfuscating the sources to SEARGE as well, so they can be remapped to the local MCP mapping version using the local dependency deobfuscation similar to using the obfuscated JAR as dependency in the dev environment.

Together with SpongePowered/Mixin#91 it would be good if we would not only contribute the Mixin SRGs to the reobfuscation task, but also to the source remapper so the mixins sources get reobfuscated properly. There is a remapping task for each of the source sets so the SRG file needs to be added to all of them.

Gradle 3.4.1 incompatibility

Attempting to use MixinGradle with a project that uses Gradle 3.4.1 results in the following error.

Could not set unknown property 'refMap' for source set 'main' of type org.gradle.api.internal.tasks.DefaultSourceSet.

Issue running MixinGrade 0.7-SNAPSHOT 520 Origin Error

Hello,
I notices that the reqest to get the scala-parser-combinators_2.11.jar from http://repo.spongepowered.org/maven/org/scala-lang/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11 fails with a 520 Origin error.

when Navigating to that link through the browser it works fine, does not work with curl, notices that on the maven for it the url is actually https not http not sure if this is a fix that can be applied to it.

https://pastebin.pl/view/6a5ac4f7

Incompatible with FG3

A problem occurred evaluating root project 'Shapeshift+2'.
> Could not get unknown property 'searge' for object of type org.spongepowered.asm.gradle.plugins.MixinExtension.

Gradle 5 breaking plugin

Changing to gradle 5 adds error in my project; it says the plugin canโ€™t be found (I do have version specified).

Unknown property 'project' while trying to use extraMappings

The build.gradle script is

mixin {
    add sourceSets.main, 'mixins.some.refmap.json'
    extraMappings('extra_mapping.tsrg')
}

and get following error

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':arclight-forge-1.14:compileJava'. <32 internal calls>
Caused by: groovy.lang.MissingPropertyException: Could not get unknown property 'project' for object of type org.spongepowered.asm.gradle.plugins.MixinExtension. <2 internal calls>
	at org.spongepowered.asm.gradle.plugins.MixinExtension_Decorated.getProperty(Unknown Source)
	at org.spongepowered.asm.gradle.plugins.MixinExtension$_applyCompilerArgs_closure16.doCall(MixinExtension.groovy:591)
	at org.spongepowered.asm.gradle.plugins.MixinExtension.applyCompilerArgs(MixinExtension.groovy:591)
	at org.spongepowered.asm.gradle.plugins.MixinExtension$_configure_closure12.doCall(MixinExtension.groovy:499) <10 internal calls>
	... 31 more

MixinGradle and Kotlin support

Hello, I have projects that use mixin and also they are written in kotlin and I noticed that it doesn't work together. Judging by the code in JavaCompile, the task is given arguments, just as you can do with Kapt, but idk why hasn't it been done yet :/
Kapt

0.7 Compatibility With FG 2.3 Or 0.6 Compatibility With Gradle Higher Than 4.10.3

So, I was using Forge Gradle 2.3 with Gradle 7.6 (It is a fork) and the problem is that I cannot use Mixin Gradle 0.6 because it has an incompatibility with any version higher than 4.10.3, and I cannot use Mixin Gradle 0.7 because it is incompatible with FG 2.3.

I do not really know what would be simpler between the two options in the title, but could you look into it?

Stacktrace of 0.6 being incompatible with newer Gradle:
https://gist.github.com/JustDesoroxxx/afc15e12c552733c0b73ea5b9ec60f0e

Build failure when applied after the 'eclipse' plugin

I've just noticed that mixingradle 0.7-SNAPSHOT causes a build failure if the 'eclipse' plugin is applied before the 'org.spongeforge.mixin' plugin (it works fine the other way around).

It would be nice to see this fixed, as finding the cause was really time consuming with such an obscure error message from gradle.

Error message:

FAILURE: Build failed with an exception.

* What went wrong:
A problem was found with the configuration of task ':forge-1.19:eclipseFactoryPath' (type 'MixinEclipse.EclipseFactoryPath').
  - In plugin 'org.spongepowered.mixin' type 'org.spongepowered.asm.gradle.plugins.MixinEclipse.EclipseFactoryPath' property 'config' has @Input annotation used on property of type 'Configuration'.

    Reason: A property of type 'Configuration' annotated with @Input cannot determine how to interpret the file.

    Possible solutions:
      1. Annotate with @InputFile for regular files.
      2. Annotate with @InputDirectory for directories.
      3. If you want to track the path, return File.absolutePath as a String and keep @Input.

    Please refer to https://docs.gradle.org/7.5/userguide/validation_problems.html#incorrect_use_of_input_annotation for more details about this problem.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/7.5/userguide/command_line_interface.html#sec:command_line_warnings

Constructors don't get added to refmap

The name <init> may not change, but the parameters do. Specifically when using notch names.

I'm applying a mixin to <init>(Lnet/minecraft/client/renderer/entity/RenderManager;Z)V, but it fails when in an obfuscated environment because the description becomes <init>(Lcpt;Z)V

The issue goes away after I manually add it to the refmap.

Regression: 0.7-SNAPSHOT suddenly breaking IntelliJ IDEA

It seems an update has been pushed to mixingradle such that the import feature no longer works on IntelliJ IDEA. Since we are advised on the main page to use the SNAPSHOT, this meant all of a sudden the project stopped working without any changes to the build.gradle or other files.

Note that using ./gradlew build still builds the project correctly. I don't know for sure that it isn't also broken on eclipse.

0.7.33 is the last available version I could see at https://repo.spongepowered.org/#browse/search=keyword%3Dmixingradle that doesn't have this issue.
0.7.36 and 0.7-SNAPSHOT fails to build with the following error

Perhaps this could have been a result of the fix for #40?

FAILURE: Build failed with an exception.

* What went wrong:
Could not create task ':mixinEclipseJdtApt'.

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
com.intellij.openapi.externalSystem.model.ExternalSystemException: Could not create task ':mixinEclipseJdtApt'.
	at org.jetbrains.plugins.gradle.model.ProjectImportAction.addBuildModels(ProjectImportAction.java:439)
	at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:139)
	at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:43)
	at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.execute(InternalBuildActionAdapter.java:64)
	at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionRunningListener.runAction(AbstractClientProvidedBuildActionRunner.java:134)
	at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionRunningListener.buildFinished(AbstractClientProvidedBuildActionRunner.java:119)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:398)
	at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:380)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:61)
	at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:368)
	at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:355)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:43)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:245)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:157)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:61)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:346)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:249)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:141)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at com.sun.proxy.$Proxy16.buildFinished(Unknown Source)
	at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:193)
	at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:131)
	at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:73)
	at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:67)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:213)
	at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:67)
	at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:56)
	at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner.runClientAction(AbstractClientProvidedBuildActionRunner.java:53)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run(ClientProvidedPhasedActionRunner.java:47)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:63)
	at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
	at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:77)
	at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:49)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:44)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:44)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.lambda$execute$0(InProcessBuildActionExecuter.java:54)
	at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:86)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:53)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:29)
	at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.lambda$execute$0(BuildTreeScopeLifecycleBuildActionExecuter.java:33)
	at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:49)
	at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.execute(BuildTreeScopeLifecycleBuildActionExecuter.java:32)
	at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.execute(BuildTreeScopeLifecycleBuildActionExecuter.java:27)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:104)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:55)
	at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:64)
	at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:37)
	at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.lambda$execute$0(SessionScopeLifecycleBuildActionExecuter.java:54)
	at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:67)
	at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.execute(SessionScopeLifecycleBuildActionExecuter.java:50)
	at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.execute(SessionScopeLifecycleBuildActionExecuter.java:36)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31)
	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
	at org.gradle.util.Swapper.swap(Swapper.java:38)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
org.gradle.api.internal.tasks.DefaultTaskContainer$TaskCreationException: Could not create task ':mixinEclipseJdtApt'.
	at org.gradle.api.internal.tasks.DefaultTaskContainer.taskCreationException(DefaultTaskContainer.java:719)
	at org.gradle.api.internal.tasks.DefaultTaskContainer.access$600(DefaultTaskContainer.java:77)
	at org.gradle.api.internal.tasks.DefaultTaskContainer$TaskCreatingProvider.domainObjectCreationException(DefaultTaskContainer.java:711)
	at org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:948)
	at org.gradle.api.internal.tasks.DefaultTaskContainer$TaskCreatingProvider.access$1401(DefaultTaskContainer.java:658)
	at org.gradle.api.internal.tasks.DefaultTaskContainer$TaskCreatingProvider$1.run(DefaultTaskContainer.java:684)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)
	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)
	at org.gradle.api.internal.tasks.DefaultTaskContainer$TaskCreatingProvider.tryCreate(DefaultTaskContainer.java:680)
	at org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.calculateOwnValue(DefaultNamedDomainObjectCollection.java:929)
	at org.gradle.api.internal.provider.AbstractMinimalProvider.getOrNull(AbstractMinimalProvider.java:93)
	at org.gradle.api.internal.DefaultNamedDomainObjectCollection.findByName(DefaultNamedDomainObjectCollection.java:295)
	at org.gradle.api.internal.tasks.DefaultTaskContainer.findByName(DefaultTaskContainer.java:562)
	at org.gradle.api.internal.tasks.DefaultTaskContainer.findByName(DefaultTaskContainer.java:76)
	at org.gradle.plugins.ide.internal.tooling.GradleProjectBuilder.tasks(GradleProjectBuilder.java:104)
	at org.gradle.plugins.ide.internal.tooling.GradleProjectBuilder.buildHierarchy(GradleProjectBuilder.java:80)
	at org.gradle.plugins.ide.internal.tooling.GradleProjectBuilder.buildAll(GradleProjectBuilder.java:52)
	at org.gradle.plugins.ide.internal.tooling.IdeaModelBuilder.buildAll(IdeaModelBuilder.java:77)
	at org.gradle.plugins.ide.internal.tooling.IdeaModelBuilder.buildAll(IdeaModelBuilder.java:59)
	at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuilderWithNoParameter.build(DefaultToolingModelBuilderRegistry.java:169)
	at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$LockSingleProjectBuilder.lambda$build$0(DefaultToolingModelBuilderRegistry.java:211)
	at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$withProjectLock$3(DefaultProjectStateRegistry.java:310)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:213)
	at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withProjectLock(DefaultProjectStateRegistry.java:310)
	at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:291)
	at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$LockSingleProjectBuilder.build(DefaultToolingModelBuilderRegistry.java:211)
	at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingBuilder$1.call(DefaultToolingModelBuilderRegistry.java:246)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
	at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingBuilder.build(DefaultToolingModelBuilderRegistry.java:243)
	at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getModel(DefaultBuildController.java:102)
	at org.gradle.tooling.internal.consumer.connection.ParameterAwareBuildControllerAdapter.getModel(ParameterAwareBuildControllerAdapter.java:39)
	at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.getModel(UnparameterizedBuildController.java:113)
	at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.getModel(NestedActionAwareBuildControllerAdapter.java:31)
	at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.findModel(UnparameterizedBuildController.java:97)
	at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.findModel(NestedActionAwareBuildControllerAdapter.java:31)
	at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.findModel(UnparameterizedBuildController.java:81)
	at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.findModel(NestedActionAwareBuildControllerAdapter.java:31)
	at org.jetbrains.plugins.gradle.model.ProjectImportAction$MyBuildController.findModel(ProjectImportAction.java:669)
	at com.android.tools.idea.gradle.project.sync.ModelConverter.populateModuleBuildDirs(ModelConverter.java:37)
	at com.android.tools.idea.gradle.project.sync.AndroidExtraModelProviderImpl.populateBuildModels(AndroidExtraModelProvider.kt:118)
	at com.android.tools.idea.gradle.project.sync.AndroidExtraModelProvider.populateBuildModels(AndroidExtraModelProvider.kt:54)
	at org.jetbrains.plugins.gradle.model.ProjectImportAction.addBuildModels(ProjectImportAction.java:427)
	at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:139)
	at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:43)
	at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.execute(InternalBuildActionAdapter.java:64)
	at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionRunningListener.runAction(AbstractClientProvidedBuildActionRunner.java:134)
	at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionRunningListener.buildFinished(AbstractClientProvidedBuildActionRunner.java:119)
	at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:398)
	at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:380)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:61)
	at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:368)
	at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:355)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:43)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:245)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:157)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:61)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:346)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:249)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:141)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at com.sun.proxy.$Proxy16.buildFinished(Unknown Source)
	at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:193)
	at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:131)
	at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:73)
	at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:67)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:213)
	at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:67)
	at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:56)
	at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner.runClientAction(AbstractClientProvidedBuildActionRunner.java:53)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run(ClientProvidedPhasedActionRunner.java:47)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:63)
	at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
	at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:77)
	at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:49)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:44)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:44)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.lambda$execute$0(InProcessBuildActionExecuter.java:54)
	at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:86)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:53)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:29)
	at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.lambda$execute$0(BuildTreeScopeLifecycleBuildActionExecuter.java:33)
	at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:49)
	at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.execute(BuildTreeScopeLifecycleBuildActionExecuter.java:32)
	at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.execute(BuildTreeScopeLifecycleBuildActionExecuter.java:27)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:104)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:55)
	at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:64)
	at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:37)
	at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.lambda$execute$0(SessionScopeLifecycleBuildActionExecuter.java:54)
	at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:67)
	at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.execute(SessionScopeLifecycleBuildActionExecuter.java:50)
	at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.execute(SessionScopeLifecycleBuildActionExecuter.java:36)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31)
	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
	at org.gradle.util.Swapper.swap(Swapper.java:38)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
	at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.IllegalArgumentException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
	at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.setProperty(BeanDynamicObject.java:381)
	at org.gradle.internal.metaobject.BeanDynamicObject.trySetProperty(BeanDynamicObject.java:181)
	at org.gradle.internal.metaobject.CompositeDynamicObject.trySetProperty(CompositeDynamicObject.java:66)
	at org.gradle.internal.metaobject.ConfigureDelegate.setProperty(ConfigureDelegate.java:94)
	at org.codehaus.groovy.runtime.InvokerHelper.setProperty(InvokerHelper.java:213)
	at groovy.lang.Closure.setProperty(Closure.java:347)
	at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setGroovyObjectProperty(ScriptBytecodeAdapter.java:544)
	at org.spongepowered.asm.gradle.plugins.MixinEclipse$_configureEclipse_closure1.doCall(MixinEclipse.groovy:64)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:263)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
	at groovy.lang.Closure.call(Closure.java:405)
	at groovy.lang.Closure.call(Closure.java:421)
	at org.gradle.util.ClosureBackedAction.execute(ClosureBackedAction.java:71)
	at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:154)
	at org.gradle.util.ConfigureUtil.configureSelf(ConfigureUtil.java:130)
	at org.gradle.api.internal.AbstractTask.configure(AbstractTask.java:600)
	at org.gradle.api.DefaultTask.configure(DefaultTask.java:307)
	at org.gradle.api.DefaultTask.configure(DefaultTask.java:44)
	at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:103)
	at org.gradle.util.ConfigureUtil$WrappedConfigureAction.execute(ConfigureUtil.java:166)
	at org.gradle.api.internal.DefaultMutationGuard$2.execute(DefaultMutationGuard.java:44)
	at org.gradle.api.internal.DefaultMutationGuard$2.execute(DefaultMutationGuard.java:44)
	at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:100)
	at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction$1.run(DefaultCollectionCallbackActionDecorator.java:95)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)
	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)
	at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction.execute(DefaultCollectionCallbackActionDecorator.java:92)
	at org.gradle.internal.ImmutableActionSet$SetWithManyActions.execute(ImmutableActionSet.java:329)
	at org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:264)
	at org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:113)
	at org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:258)
	at org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:944)
	... 162 more

build.gradle

buildscript {
    repositories {
        maven {
            name = 'forge'
            url = 'https://files.minecraftforge.net/maven'
        }
        maven {
            name = 'sponge'
            url = 'https://repo.spongepowered.org/maven'
        }
    }
    dependencies {
        classpath 'org.spongepowered:mixingradle:0.7.36'
        classpath 'net.minecraftforge.gradle:ForgeGradle:4.1.12'
    }
}

plugins {
    id 'org.spongepowered.plugin' version '0.9.0'

    //id 'net.minecraftforge.gradle'
    //id 'net.minecrell.licenser' version '0.4.1'
    //id 'net.minecrell.vanillagradle.server' version '2.2-6'
}

apply plugin: 'java'
apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'org.spongepowered.mixin'

//apply from: 'settingDescription.gradle'

compileJava.options.encoding = 'UTF-8'

sourceSets {
    main {
        ext.refMap = "mixins.nope.refmap.json"
    }
}

archivesBaseName = 'nope'
group = 'com.minecraftonline'
version = '0.4.12'
description = "A volume protection plugin"

ext.spongeVersion = '7.3.0'

sponge.plugin.meta {
    authors = ['PietElite', 'tyhdefu', '14mRh4X0r', 'Anna_28']
    url = "https://www.minecraftonline.com"
}

repositories {
    maven {
        name = 'enginehub-maven'
        url = 'https://maven.enginehub.org/repo/'
    }
}

//minecraftDep = "joined"
//minecraftVersion = "1.12.2"

dependencies {
    minecraft("net.minecraft:joined:1.12.2")

    implementation "org.spongepowered:spongeapi:${spongeVersion}"
    annotationProcessor "org.spongepowered:spongeapi:${spongeVersion}"

    implementation 'net.minecraftforge.gradle:ForgeGradle:4.1.12'

    implementation 'org.spongepowered:mixin:0.8.1-SNAPSHOT'
    annotationProcessor "org.spongepowered:mixin:0.8.1-SNAPSHOT:processor"

    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.1'

//    compile files('libs/craftbook-api-extra22.26-original.jar')

    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'

    // Lombok
    implementation 'org.projectlombok:lombok:1.18.16'
    annotationProcessor 'org.projectlombok:lombok:1.18.16'

    testImplementation 'org.projectlombok:lombok:1.18.16'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.16'

    // WorldEdit
    implementation 'com.sk89q.worldedit:worldedit-sponge:6.1.7-SNAPSHOT'
    implementation 'com.sk89q.worldedit:worldedit-core:6.1.4-SNAPSHOT'
}

minecraft {
    //version = '1.12.2'
    mappings("snapshot", "20180814-1.12")
    //useDepAts = true

    //runDir = 'run'
}

jar {
    manifest.attributes(
            'TweakClass': 'org.spongepowered.asm.launch.MixinTweaker',
            'MixinConfigs': 'mixins.nope.json'
    )
}

Deprecated VersionNumber is used

The following message is printed under --warning-mode=all -s:

The org.gradle.util.VersionNumber type has been deprecated. This is scheduled to be removed in Gradle 9.0. Consult the upgrading guide for further information: https://docs.gradle.org/8.1.1/userguide/upgrading_version_7.html#org_gradle_util_reports_deprecations
        at org.gradle.util.VersionNumber.logDeprecation(VersionNumber.java:37)
        at org.gradle.util.VersionNumber.maybeLogDeprecation(VersionNumber.java:75)
        at org.gradle.util.VersionNumber.toString(VersionNumber.java:145)
        at org.spongepowered.asm.gradle.plugins.MixinGradlePlugin.getCurrentVersion(MixinGradlePlugin.groovy:85)
        at org.spongepowered.asm.gradle.plugins.MixinGradlePlugin.<clinit>(MixinGradlePlugin.groovy:51)

There is no replacement for this class, see gradle/gradle#17450 (comment).

ForgeGradle 4/Gradle 6.8.1 breaks refmap generation

I updated my project to ForgeGradle 4 alongside gradle version 4.8.1 and the refmap generation when running gradlew build stopped working. When using the recompiled and reobfuscated mod on runtime it crashes the game. Is this a known issue or is there a workaround for this?

build.gradle dependencies:

dependencies {
    classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '4.1.+', changing: true
}

gradle-wrapper.properties:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

I Want To Build my mod,but gradle can't find mixingradle

report:

A problem occurred configuring root project 'Hack'.

Could not resolve all artifacts for configuration ':classpath'.
Could not find mixingradle.jar (org.spongepowered:mixingradle:0.4-SNAPSHOT).
Searched in the following locations:
http://files.minecraftforge.net/maven/org/spongepowered/mixingradle/0.4-SNAPSHOT/mixingradle-0.4-SNAPSHOT.jar

Possible solution:

this is my build.gradle:build.gradle

Refmap is not included in jar when compile task is skipped.

If I have a clean workspace and I build, everything works as expected. The code gets compiled, the annotation processor runs, and the refmap is included in the jar. If I then build again without changing the sources, the compile task does not run (UP-TO-DATE).

From looking at the source here, it seems the refmap file is only added to the jar when the compile task is completed. The doLast call will not run if the task is skipped.

Replacing Mixin gradle plugins with your own?

I'm currently getting this error

Caused by: java.lang.NoClassDefFoundError: org/gradle/api/internal/file/collections/SimpleFileCollection
	at org.spongepowered.asm.gradle.plugins.MixinExtension$_init_closure4.doCall(MixinExtension.groovy:241)
	at org.spongepowered.asm.gradle.plugins.MixinExtension$_init_closure4.doCall(MixinExtension.groovy)

which is caused by MixinGradle 0.6 not supporting Gradle 5, which is entirely understandable given how ancient it is.

Is there a way to replace the extension with my own? Or do I have to bundle my own Mixins fork?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.