因此,我可以使用 ant xjc 从合同 jar 中的 ONE xsd 生成类。如何在不解压的情况下从这个 jar 的多个模式生成类
ant.xjc(package: packageName, destdir: project.ext.generatedSrcDir,
extension: 'true',
schema: "jar:file:///$pathToContractJar!/MySchema.xsd")
Run Code Online (Sandbox Code Playgroud)
configurations {
jaxb
}
dependencies {
jaxb 'com.sun.xml.bind:jaxb-xjc:2.2.6'
jaxb 'com.sun.xml.bind:jaxb-impl:2.2.6'
jaxb 'javax.xml.bind:jaxb-api:2.2.6'
}
task xjc {
def xsds = zipTree(pathToContractJar).matching {
include: '*.xsd'
}
inputs.dir "src/main/resources/bindings"
inputs.files xsds
outputs.dir "$buildDir/xjc"
doLast {
System.setProperty('javax.xml.accessExternalSchema', 'all')
mkdir "$buildDir/xjc/result"
mkdir "$buildDir/xjc/xsd"
copy {
from xsds
into "$buildDir/xjc/xsd"
}
ant.taskdef(name: 'xjc', classname: 'com.sun.tools.xjc.XJCTask', classpath: configurations.jaxb.asPath)
ant.xjc(
destdir: "$buildDir/xjc/result",
package: packageName,
) {
schema(dir: "$buildDir/xjc/xsd", includes: '*.xsd')
binding(dir: "src/main/resources/bindings", includes: '*.xjb')
arg(value: '-verbose')
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8287 次 |
| 最近记录: |