使用Gradle anttask生成JAXB剧集文件

时间:2015-05-06 14:36:55

标签: ant gradle jaxb build.gradle

我设置了一个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'
    )

1 个答案:

答案 0 :(得分:3)

这是我的一个构建示例,它将其他参数传递给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会像那样工作。

请注意" arg" function接受一个SINGLE参数。如果你指定一个命令行选项除了存在选项本身之外还取值,那么你需要两个arg调用,一个用于选项字符串,一个用于值本身,所以它可能就像这样:

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