问题描述
我有一个 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 (将#修改为@)