如何使用gradle从WSDL和XSD生成类,相当于maven-jaxb2-plugin

我想将我的Maven2构建文件切换为gradle。 使用gradle从WSDL + XSD生成java类似乎没有进一步记录,因此没有gradle插件。 我使用maven的以下配置并搜索gradle的等效项。

  org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.7.3   app1-stub-generation  generate   ${project.build.directory}/wsdl/app1  *.xsd  org.app1.ws.generated ${project.build.directory}/generated-sources/app1 true    app2-v1-stub-generation  generate   src/main/resources/wsdl  v1/*.xsd  org.app2.ws.generated.v1 ${project.build.directory}/generated-sources/v1 true    app2-v2-stub-generation  generate   src/main/resources/wsdl  v2/*.xsd  org.app2.ws.generated.v2 ${project.build.directory}/generated-sources/v2 true     

我解决了……

 configurations { jaxb } dependencies { jaxb group: 'com.sun.xml.bind', name: 'jaxb-xjc', version: '2.2.4-1' } task jaxb () { // output directory jaxbTargetDir = file( "${buildDir}/generated-sources" ) jaxbTargetDirV19 = file( jaxbTargetDir.path + '/v19' ) jaxbTargetDirV110 = file( jaxbTargetDir.path + '/v110' ) jaxbTargetDirOtherWs = file( jaxbTargetDir.path + '/otherWs' ) // perform actions doLast { jaxbTargetDirV19.mkdirs() jaxbTargetDirV110.mkdirs() jaxbTargetDirOtherWs.mkdirs() ant.taskdef(name: 'xjc', classname: 'com.sun.tools.xjc.XJCTask', classpath: configurations.jaxb.asPath) ant.jaxbTargetDirV19 = jaxbTargetDirV19 ant.jaxbTargetDirV110 = jaxbTargetDirV110 ant.jaxbTargetDirOtherWs = jaxbTargetDirOtherWs // My-Webservice v1.10 ant.xjc( destdir: '${jaxbTargetDirV110}', package: 'mypackage.ws.generated.v110', schema: 'src/main/resources/wsdl/v1.10/MyServiceSchema.xsd' ) // My-Webservice v1.9 ant.xjc( destdir: '${jaxbTargetDirV19}', package: 'mypackage.ws.generated.v19', schema: 'src/main/resources/wsdl/v1.9/MyServiceSchema.xsd' ) // OtherWs-Webservice ant.xjc( destdir: '${jaxbTargetDirOtherWs}', package: 'mypackage.otherws.generated', schema: 'src/main/resources/wsdl/OtherWsServiceSchema.xsd' ) } } compileJava.dependsOn jaxb 

如果您找不到特定需求的Gradle插件(并且不想编写自己的插件),请注意Ant任务。 这是JAXB的一个: XJC Ant Task 。

任何Ant任务都可以像Gradle一样使用 (请参阅从Gradle使用Ant )。 将来,Gradle还将支持Maven插件的执行。

使用此处描述的插件: https : //github.com/nilsmagnus/wsdl2java