在 Quarkus 微服务中基于 XSD 生成 XJC 类导致 quarkusGenerateCode FAILURE

问题描述

我有一个 Quarkus 微服务,我正在使用 XJC Gradle 任务从 XSD 模式中生成 java 类,如下所示: (它基于这篇文章的第二个答案:How to generate jaxb classes from xsd using gradle,jaxb and xjc,classes should have XmlRootElement

// The folter to put the generated XJC Java classes in
def generatedXjcclassesDir = "src/generated/java"

sourceSets {
    generated {
        java.srcDir generatedXjcclassesDir
    }
}

dependencies {
    // Also compile the generated XJC Java classes
    compile sourceSets.generated.output

    compile 'org.glassfish.jaxb:jaxb-runtime:2.3.3'
    generatedCompile 'org.glassfish.jaxb:jaxb-runtime:2.3.3'
}

/**
 * XJC stuff
 *
 **/
configurations {
    // Having a separate configuration for XJC plugin only
    xjc
}

dependencies {
    xjc 'org.glassfish.jaxb:jaxb-xjc:2.3.3'
}

def xjcTask(taskName,schema,pkg,dest) {

    // Create (if not existing yet) the destination directory
    file(dest).mkdirs()

    // Calling XJCFacade which is the entry point of the XJC JAR
    tasks.create(name: taskName,type: JavaExec) {
        classpath configurations.xjc
        main 'com.sun.tools.xjc.XJCFacade'

        // To explore available args,download the XJC JAR manually and run java -jar jaxb-xjc.jar --help
        args schema,"-p","-d",dest
    }
    // 
    compileGeneratedJava.dependsOn tasks.getByName(taskName)
}

xjcTask('xjcSchema1','src/main/xsd/SCL.xsd','org.lfenergy.compas',generatedXjcclassesDir)

它确实工作得很好,所有的 java 类都被生成并放入 src/generated/java 文件夹中。

但是 quarkus 应用程序没有正确编译,因为它给出了以下错误

> Task :quarkusGenerateCode Failed
Caching disabled for task ':quarkusGenerateCode' because:
  Build cache is disabled
Task ':quarkusGenerateCode' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
preparing quarkus application
:quarkusGenerateCode (Thread[Execution worker for ':',5,main]) completed. Took 1.487 secs.

FAILURE: Build Failed with an exception.

* What went wrong:
Execution Failed for task ':quarkusGenerateCode'.
> Error while reading file as JAR: /Users/rob/Code/CoMPAS/compas-cim-mapping/build/resources/generated

我尝试搜索错误,但这里缺乏我的 Quarkus 知识。有人可以帮我吗? :)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)