如何使用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
- 无法使用Gradle构建Android应用程序
- Spring Tool Suite(STS) – 无法使用Gradle(Buildship)导入
- 如何为Android Studio打包和链接OpenCV binares和OpenCV Java SDK?
- 有没有办法安装jar本地gradle存储库,因为它在mave中(maven install:install-file
- Gradle Build对于任务应用程序失败:processReleaseResources
- Gradle将依赖项下载到缓存而不是maven存储库
- Gradle将多个依赖项提取到不同的目录
- java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkState(ZLjava / lang / String;),包含Selenium,gradle和ChromeDriver
- Spring Boot应用程序中的Websocket – 获取403禁止