Миксины и билд с вырезалкой(+ другие плюшки)

Версия Minecraft
1.12.2
API
Forge

will0376

Токсичная личность
2,070
55
582
Здрааасте! 1613544922055.png

После нескольких факапов с билдом мода для заказчика - выяснилось, что миксины не дружат ни с
annotationProcessor 'org.projectlombok:lombok:1.18.8', "io.gitlab.hohserg.elegant.networking:annotation-processor:2.8"
для пакетных аннотаций,
ни с плагином cutter.(внезапно - заработало. Мать эти грабли так)
Reference map 'mixins.guilds.refmap.json' for mixins.guilds.json could not be read. If this is a development environment you can ignore this message

Эта "недружба" выливается в игнорировании в билде рефмапы(которая оказалась настолько нужной, ЧТО ОНА ПУСТАЯ ***** 1613545096354.png)
Я конечно-же могу отключать и вырезалку и процессор аннотаций для единичного билда, чтоб потом рефмапу кидать в готовые БАНКИ модов... Но это не дело, а сраный костыль.

Кстати тем, кто задумал написать что-то подобное: "да выкинь ты эти костыли и сделай свои" - советую пойти... и подумать еще разок. Ибо велосипеды я городить не собираюсь
1613545932096.png(если понимаешь о чем я ( ͡° ͜ʖ ͡°) )
 
Последнее редактирование:
7,099
324
1,510
что миксины не дружат ни с
А если по отдельности миксины+EN без cutter или миксины+cutter без EN, то аналогично не пашет?

Я конечно-же могу отключать и вырезалку и процессор аннотаций для единичного билда, чтоб потом рефмапу кидать в готовые БАНКИ модов... Но это не дело, а сраный костыль.
Можно сконфигурировать Gradle, чтобы он дважды собирал проект, сначала для рефмапы, потом копировал рефмапу в сборку для вырезалки и пакетов
 

will0376

Токсичная личность
2,070
55
582
аналогично не пашет?
да.
Онли миксин:
Код:
> Task :compileJava
2021-02-17 09:53:58,735 Task worker for ':' WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
Note: SpongePowered MIXIN Annotation Processor Version=0.8.2
Note: ObfuscationServiceMCP supports type: "searge"
Note: ObfuscationServiceMCP supports type: "notch"
Note: Loading searge mappings from C:\Users\MegaBitNB\.gradle\caches\minecraft\de\oceanlabs\mcp\mcp_stable\39\1.12.2\srgs\mcp-srg.srg
Note: Loading notch mappings from C:\Users\MegaBitNB\.gradle\caches\minecraft\de\oceanlabs\mcp\mcp_stable\39\1.12.2\srgs\mcp-notch.srg
D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\sources\main\java\ru\will0376\guilds\common\mixin\MixinItemEnderPearl.java:25: warning: @Overwrite is missing an @reason tag
    public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) {
                                   ^
Note: Writing refmap to D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\tmp\compileJava\compileJava-refmap.json
Note: Writing searge output SRGs to D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\tmp\compileJava\mcp-srg.srg
Note: Writing notch output SRGs to D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\tmp\compileJava\mcp-notch.srg
Note: Writing refmap to D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\tmp\compileJava\compileJava-refmap.json
Note: Writing searge output SRGs to D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\tmp\compileJava\mcp-srg.srg
Note: Writing notch output SRGs to D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\tmp\compileJava\mcp-notch.srg
Note: Writing refmap to D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\tmp\compileJava\compileJava-refmap.json
Note: Writing searge output SRGs to D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\tmp\compileJava\mcp-srg.srg
Note: Writing notch output SRGs to D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\tmp\compileJava\mcp-notch.srg
Note: Writing refmap to D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\tmp\compileJava\compileJava-refmap.json
Note: Writing searge output SRGs to D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\tmp\compileJava\mcp-srg.srg
Note: Writing notch output SRGs to D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\tmp\compileJava\mcp-notch.srg
1 warning

всё сразу:
Код:
> Task :compileJava
D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\sources\main\java\ru\will0376\guilds\common\net\ToClientBC.java:20: Note: Found elegant packet class ToClientBC
public class ToClientBC implements ServerToClientPacket {
       ^
D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\sources\main\java\ru\will0376\guilds\common\net\ToClientDamageBar.java:13: Note: Found elegant packet class ToClientDamageBar
public class ToClientDamageBar implements ServerToClientPacket {
       ^
D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\sources\main\java\ru\will0376\guilds\common\net\ToClientGuild.java:22: Note: Found elegant packet class ToClientGuild
public class ToClientGuild implements ServerToClientPacket {
       ^
D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\sources\main\java\ru\will0376\guilds\common\net\ToClientQuestions.java:14: Note: Found elegant packet class ToClientQuestions
public class ToClientQuestions implements ServerToClientPacket {
       ^
D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\sources\main\java\ru\will0376\guilds\common\net\ToClientService.java:24: Note: Found elegant packet class ToClientService
public class ToClientService implements ServerToClientPacket {
       ^
D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\sources\main\java\ru\will0376\guilds\common\net\ToClientTests.java:15: Note: Found elegant packet class ToClientTests
public class ToClientTests implements ServerToClientPacket {
       ^
D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\sources\main\java\ru\will0376\guilds\common\net\ToServerLink.java:18: Note: Found elegant packet class ToServerLink
public class ToServerLink implements ClientToServerPacket {
       ^
D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\sources\main\java\ru\will0376\guilds\common\net\ToServerService.java:33: Note: Found elegant packet class ToServerService
public class ToServerService implements ClientToServerPacket {
       ^
D:\IDEA_projects\devmine\1.12.2\.ForSalePrivate\Guilds\build\sources\main\java\ru\will0376\guilds\common\net\ToServerTests.java:14: Note: Found elegant packet class ToServerTests
public class ToServerTests implements ClientToServerPacket {
       ^
warning: The following options were not recognized by any processor: '[reobfNotchSrgFile, outRefMapFile, outNotchSrgFile, reobfSrgFile, outSrgFile]'
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Хм. вчера с cutter'ом не работала генерация. сейчас всё ок =\

т.е. с пакеткой не пашет... очень странно

Кстати, @hohserg1 note'сы как варринги... Гениально

Скрипт граблей: hastebin
 
Последнее редактирование:
7,099
324
1,510
Поменяй
Gradle (Groovy):
annotationProcessor 'org.projectlombok:lombok:1.18.8', "io.gitlab.hohserg.elegant.networking:annotation-processor:2.8"
На

Java:
annotationProcessor 'org.projectlombok:lombok:1.18.8', "io.gitlab.hohserg.elegant.networking:annotation-processor:2.8", 'org.spongepowered:mixin:0.8.2'
 

will0376

Токсичная личность
2,070
55
582
Java:
Execution failed for task ':compileJava'.
> java.lang.NoClassDefFoundError: com/google/gson/JsonParseException.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':compileJava'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
    at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
    at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
    at org.gradle.execution.taskgraph.LocalTaskInfoExecutor.execute(LocalTaskInfoExecutor.java:42)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:277)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:262)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:135)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.execute(DefaultTaskPlanExecutor.java:200)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.executeWithWork(DefaultTaskPlanExecutor.java:191)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.RuntimeException: java.lang.NoClassDefFoundError: com/google/gson/JsonParseException
    at com.sun.tools.javac.main.Main.compile(Main.java:553)
    at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
    at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
    at org.gradle.api.internal.tasks.compile.AnnotationProcessingCompileTask.call(AnnotationProcessingCompileTask.java:89)
    at org.gradle.api.internal.tasks.compile.ResourceCleaningCompilationTask.call(ResourceCleaningCompilationTask.java:57)
    at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)
    at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:36)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:100)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)
    at org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:49)
    at org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:35)
    at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:39)
    at org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilerFactory$2.execute(IncrementalCompilerFactory.java:110)
    at org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilerFactory$2.execute(IncrementalCompilerFactory.java:106)
    at org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:59)
    at org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:43)
    at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:153)
    at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:121)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
    at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
    ... 31 more
Caused by: java.lang.NoClassDefFoundError: com/google/gson/JsonParseException
    at org.spongepowered.tools.obfuscation.ReferenceManager.<init>(ReferenceManager.java:91)
    at org.spongepowered.tools.obfuscation.ObfuscationManager.<init>(ObfuscationManager.java:72)
    at org.spongepowered.tools.obfuscation.AnnotatedMixins.<init>(AnnotatedMixins.java:156)
    at org.spongepowered.tools.obfuscation.AnnotatedMixins.getMixinsForEnvironment(AnnotatedMixins.java:682)
    at org.spongepowered.tools.obfuscation.MixinObfuscationProcessor.init(MixinObfuscationProcessor.java:57)
    at org.gradle.api.internal.tasks.compile.processing.DelegatingProcessor.init(DelegatingProcessor.java:57)
    at org.gradle.api.internal.tasks.compile.processing.NonIncrementalProcessor.init(NonIncrementalProcessor.java:33)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init>(JavacProcessingEnvironment.java:500)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:597)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:690)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
    at com.sun.tools.javac.main.Main.compile(Main.java:523)
    ... 61 more
Caused by: java.lang.ClassNotFoundException: com.google.gson.JsonParseException
    ... 77 more
 
Последнее редактирование:
7,099
324
1,510
В 0.8.2 версии миксинов зависимости больше не тянутся транзитивно?
У мя работало annotationProcessor('org.spongepowered:mixin:0.7.11-SNAPSHOT')
 

will0376

Токсичная личность
2,070
55
582
Добавил в annotationProcessor

'com.google.code.gson:gson:2.8.6'

теперь требует com/google/common/collect/Maps...
Подумываю совсем охренеть и скормить ему +- все нужные зависимости
всё проще оказалось, добавил :processor - стало работать норм. спасибо @necauqua
Итоговая строка:
annotationProcessor 'org.projectlombok:lombok:1.18.8', "io.gitlab.hohserg.elegant.networking:annotation-processor:2.8", 'org.spongepowered:mixin:0.8.2`:processor`'
 
Сверху