Проблемы с Gradle

Версия Minecraft
1.7.10
API
Forge
174
6
24
Люди, столкнулся с такой проблемой.
Сразу оставлю свой build.gradle
build.gradle:
buildscript {
    repositories {
        mavenCentral()
        maven {
            name = "forge"
            url = "http://files.minecraftforge.net/maven"
        }
        maven {
            name = "sonatype"
            url = "https://oss.sonatype.org/content/repositories/snapshots/"
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
        classpath ('io.gitlab.hohserg.elegant.networking:elegant-networking-1.7.10:3.14') {
            changing = true
        }
        classpath ('org.projectlombok:lombok:1.18.8') {
            changing = true
        }
    }
}

apply plugin: 'forge'

version = "1.0"
group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "modid"

minecraft {
    version = "1.7.10-10.13.4.1614-1.7.10"
    runDir = "eclipse"
}

dependencies {
    // you may put jars on which you depend on in ./libs
    // or you may define them like so..
    //compile "some.group:artifact:version:classifier"
    //compile "some.group:artifact:version"

    // real examples
    //compile 'com.mod-buildcraft:buildcraft:6.0.8:dev'  // adds buildcraft to the dev env
    //compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env

    // for more info...
    // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
    // http://www.gradle.org/docs/current/userguide/dependency_management.html

    implementation("io.gitlab.hohserg.elegant.networking:elegant-networking-1.7.10:3.14")
    compileOnly 'org.projectlombok:lombok:1.18.8'
    compileOnly "io.gitlab.hohserg.elegant.networking:annotation-processor:3.14" //для ide
    annotationProcessor 'org.projectlombok:lombok:1.18.8', "io.gitlab.hohserg.elegant.networking:annotation-processor:3.14"

}

processResources
        {
            // this will ensure that this task is redone when the versions change.
            inputs.property "version", project.version
            inputs.property "mcversion", project.minecraft.version

            // replace stuff in mcmod.info, nothing else
            from(sourceSets.main.resources.srcDirs) {
                include 'mcmod.info'

                // replace version and mcversion
                expand 'version':project.version, 'mcversion':project.minecraft.version
            }

            // copy everything else, thats not the mcmod.info
            from(sourceSets.main.resources.srcDirs) {
                exclude 'mcmod.info'
            }
        }

При использовании Gradle 4.7 и выше мод не собирается и я получаю ошибку

Ошибка:
Build file 'D:\USERS\Specialist\Desktop\TestWorkspace\build.gradle' line: 24

* What went wrong:
A problem occurred evaluating root project 'TestWorkspace'.
[QUOTE] Failed to apply plugin [id 'forge'][/QUOTE]
[QUOTE] Could not create task ':reobf'.[/QUOTE]
[QUOTE] Could not create task of type 'ReobfTask'.[/QUOTE]
[QUOTE] org.gradle.api.tasks.TaskInputs.files([Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;[/QUOTE]
 
Краш-лог
Build file 'D:\USERS\Specialist\Desktop\TestWorkspace\build.gradle' line: 24



* What went wrong:

A problem occurred evaluating root project 'TestWorkspace'.

> Failed to apply plugin [id 'forge']

> Could not create task ':reobf'.

> Could not create task of type 'ReobfTask'.

> org.gradle.api.tasks.TaskInputs.files([Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;
Краш-лог:
Build file 'D:\USERS\Specialist\Desktop\TestWorkspace\build.gradle' line: 24



* What went wrong:

A problem occurred evaluating root project 'TestWorkspace'.

> Failed to apply plugin [id 'forge']

   > Could not create task ':reobf'.

      > Could not create task of type 'ReobfTask'.

         > org.gradle.api.tasks.TaskInputs.files([Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;
Решение
ну вот эта ошибка - All type parameters must be passed - возникает когда EN пытается сгенерировать сериализатор для какого-то класса и рекурсивно натыкается на класс, который не может сериализовать.
похоже, мне надо добавить в ошибку компиляции также указание класса, сериализация которого вызывает проблемы.

tox1cozZ

aka Agravaine
8,456
598
2,893
 
7,099
324
1,510
Спасибо, но теперь получаю

[net.minecraft.world.World.loadedEntityList] All type parameters must be passed
Это связано с каким-то сериализуемым классом, который имеет параметры типа
Например, если у тебя есть
Java:
class MyCollection<A> {
    A value;
}
class Some { }
Тогда тип MyCollection<Some> будет сериализуемым, а тип MyCollection не будет, потому что поле value во втором случае принимать любое значение в том числе несериализуемое
~~~
Ошибка указывает на World.loadedEntityList, и это поле имеет тип List, а не List<че-то-там>, однако зачем ты пытаешься передавать World в пакете? Возможные варианты: в пакете передается Entity, Chunk или что-то содержащие в себе ссылку на World
 
Последнее редактирование:
7,099
324
1,510
значит, это тот случай:
в пакете передается Entity

зачем тебе нужно передавать сущности в пакете?
это не имеет много смысла, потому что каждая сущность тянет за собой дофига всего в том числе целый мир со всеми остальными сущностями.
если хочешь синхронизировать состояние сущности с клиентом, то в пакете стоит передавать именно синхронизируемые данные.
а еще можно юзать DataManager, там довольно прозрачная синхронизация.
 
7,099
324
1,510
ну вот эта ошибка - All type parameters must be passed - возникает когда EN пытается сгенерировать сериализатор для какого-то класса и рекурсивно натыкается на класс, который не может сериализовать.
похоже, мне надо добавить в ошибку компиляции также указание класса, сериализация которого вызывает проблемы.
 
Сверху