【问题标题】:Generate JAXB episode file with Gradle anttask使用 Gradle anttask 生成 JAXB 剧集文件
【发布时间】:2015-07-16 18:36:10
【问题描述】:

我设置了一个 gradle 任务来从 XSD 文件生成 java 类:

ant.taskdef(name: 'xjc', classname: 'com.sun.tools.xjc.XJCTask', classpath: configurations.jaxb.asPath)
ant.jaxbTargetDir = jaxbTargetDir
ant.xjc(destdir: '${jaxbTargetDir}', package: 'com.example') {
      schema(dir:'/home/bruckwald/proj/schema/xsd', includes: '*.xsd')
}

如何将参数-episode my.episode 传递给ant 任务以便生成剧集文件?
我正在使用以下依赖项:

jaxb(
    'com.sun.xml.bind:jaxb-core:2.2.11',
    'com.sun.xml.bind:jaxb-impl:2.2.11',
    'com.sun.xml.bind:jaxb-xjc:2.2.11',
    'javax.xml.bind:jaxb-api:2.2.12',
    'org.jvnet.jaxb2_commons:jaxb2-basics-ant:0.9.4'
    )

【问题讨论】:

    标签: ant gradle jaxb build.gradle


    【解决方案1】:

    这是我构建的一个示例,它将其他参数传递给 XJC 任务:

    ant.xjc(destdir: genDir, package: pkgName, extension: true) {
        classpath { pathelement(path: configurations.xjcrun.asPath) }
        schema(dir: "src/main/resources/schema", includes: schemaName)
        arg(value: "-Xxew")
        arg(value: "-Xfluent-api")
    }
    

    我想你的“-episode”参数会像那样工作。

    请注意,“arg”函数采用 SINGLE 参数。如果您指定一个命令行选项,除了选项本身的存在之外还需要一个值,那么您将需要两个 arg 调用,一个用于选项字符串,一个用于值本身,所以它可能是这样的:

    arg(value: "-episode")
    arg(value: "my.episode")
    

    【讨论】:

    • 谢谢,但不幸的是这不起作用。如果我通过带有文件名参数的-episode 我得到unrecognized parameter,如果没有则an operand is missing。我编辑了答案以显示我使用的 jaxb 依赖项。
    • 您如何准确地展示您尝试过的内容?请注意,提供给“arg”的值是一个 SINGLE 参数。
    • 啊,就是这样!首先传递“-episode”,然后传递不同参数中的文件名就可以了!如果你编辑你的答案,我会接受它
    • 我添加了一个适合您问题的示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    相关资源
    最近更新 更多