ant - 使用 Gradle anttask 生成 JAXB Episode 文件

标签 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'
    )

最佳答案

这是我构建的一个示例,它将其他参数传递给 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 调用,一次用于选项字符串,一次用于值本身,因此可能如下所示:

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

关于ant - 使用 Gradle anttask 生成 JAXB Episode 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30079875/

相关文章:

java - 使用ant为项目中的特定文件创建Jar

android - 在 Android Studio 中包含依赖项会产生 UnsatisfiedLinkError

android - 更新到最新的 appcompat 和支持库后出现 DexIndexOverflowException 问题

android - retrofit 2 Gradle任务以构建APK退出。 ClassCastException

java - 使用 JAXB 注释忽略链接对象,但不忽略链接对象 ID

java - 包是否需要放在 jar 中才能用于 ant 构建脚本

ant - 删除文件集文件名,但在不同的目录中

java - 如何生成JAXB生成的Java类的多个版本?

java - 使用 JAXB 编码时如何包含 SOAP 信封标签?

java - 使用文件集和路径元素在 build.xml 中设置类路径的区别