首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xjc,在gradle 7.2中从xsd (使用URL)生成java类

xjc,在gradle 7.2中从xsd (使用URL)生成java类
EN

Stack Overflow用户
提问于 2021-09-27 12:39:23
回答 1查看 228关注 0票数 0

我使用插件com.github.bjornvester.xjc从xsd生成java类:

代码语言:javascript
复制
xjc {
    xjcVersion.set("2.3.3")
    outputJavaDir = file("${buildDir}/generated-sources/jaxb")
    
    ext.downloaded = file("$buildDir/xjc/downloaded/schema2.wsdl")
    doFirst {
        mkdir downloaded.parentFile
        downloaded.text = new URL("http://www.example.com/foo.xsd").text}
    
    groups {
        register("schema1") {
            xsdFiles = files(xsdDir.file("${projectDir}/src/main/resources/wsdl/schema1.wsdl"))
            defaultPackage.set("pl.com.project.schema1")
        }
        register("schema2") {
            xsdFiles = files(downloaded)
            defaultPackage.set("pl.com.project.schema2")
        }
    }
}

我在"xjc {“行得到了一个错误:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-27 12:50:05

在我之前的尝试中,我错误地认为xjc是一项任务。查看github page之后,我可以看到"xjc“是一个扩展对象,而不是一个任务

所以试试这个:

代码语言:javascript
复制
tasks.register('downloadXsd') {
   ext.xsd = file("$buildDir/downloadXsd/foo.xsd")
   outputs.file xsd // important!!! configures the task outputs
   doLast {
      mkdir xsd.parentFile
      xsd.text = new URL("http://www.example.com/foo.xsd").text
   }
}
xjc {
    ...
    groups {
        register("schema1") {
            // assuming the plugin is written properly, this should configure a task dependency
            xsdFiles = files(tasks.named('downloadXsd'))
            ...
        }
        ...
    }
}

您可以使用download task下载xsd来改进这一点,xsd显示下载的进度并具有缓存选项

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69346779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档