0

我正在尝试使用本指南从架构生成 pojo 文件https://netflix.github.io/dgs/generating-code-from-schema/

构建.gradle.kts

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation(project(":graphql-dgs-spring-boot-starter"))
    implementation(project(":graphql-dgs-subscriptions-websockets-autoconfigure"))
    implementation("io.projectreactor:reactor-core:3.4.0")

    api("com.graphql-java:graphql-java:${Versions.GRAPHQL_JAVA}") //v 16.2
}

// Using plugins DSL
plugins {
    id("com.netflix.dgs.codegen") version "4.4.1"
}

tasks {
    generateJava {
//        schemaPaths = ["${projectDir}/src/main/resources/schema"] // List of directories containing schema files
        packageName ="com.example.packagename" // The package name to use to generate sources
        generateClient = true // Enable generating the type safe query API
    }
}

得到错误


Caused by: java.lang.UnsupportedOperationException: java.io.InvalidClassException: org.antlr.v4.runtime.atn.ATN; Could not deserialize ATN with UUID 59627784-3be5-417a-b9eb-8131a7286089 (expected aadb8d7e-aeef-4415-ad2b-8204d6cf042e or a legacy UUID).
    at org.antlr.v4.runtime.atn.ATNDeserializer.deserialize(ATNDeserializer.java:153)
    at graphql.parser.antlr.GraphqlLexer.<clinit>(GraphqlLexer.java:337)
    ... 231 more
Caused by: java.io.InvalidClassException: org.antlr.v4.runtime.atn.ATN; Could not deserialize ATN with UUID 59627784-3be5-417a-b9eb-8131a7286089 (expected aadb8d7e-aeef-4415-ad2b-8204d6cf042e or a legacy UUID).
    ... 233 more

我尝试了旧版本的插件,但没有帮助

4

2 回答 2

1

看起来您与 ANTLR 存在类路径冲突。这很可能是由另一个 Gradle 插件引起的,该插件引入了另一个(可能较旧)版本的 ANTLR。简单的解决方法是重新排序插件,将 codegen 插件放在其他插件之前。希望其他插件适用于较新版本的 ANTLR,但通常情况就是这样。

于 2021-04-02T18:23:34.360 回答
0

我在其他使用 gradle 的项目中尝试过,它可以工作。

于 2021-03-30T10:25:53.190 回答