我想将我的Maven2构建文件切换到gradle。使用gradle从WSDL + XSD生成Java类似乎没有进一步的文档记录,对此没有gradle插件。我将以下配置与maven一起使用,并搜索等效的gradle。
<!-- plugin for generating the classes from the WSDL+XSD --> <plugin> <groupId>org.jvnet.jaxb2.maven2</groupId> <artifactId>maven-jaxb2-plugin</artifactId> <version>0.7.3</version> <executions> <execution> <id>app1-stub-generation</id> <goals> <goal>generate</goal> </goals> <configuration> <schemaDirectory>${project.build.directory}/wsdl/app1</schemaDirectory> <schemaIncludes> <include>*.xsd</include> </schemaIncludes> <generatePackage>org.app1.ws.generated</generatePackage> <generateDirectory>${project.build.directory}/generated-sources/app1</generateDirectory> <strict>true</strict> </configuration> </execution> <execution> <id>app2-v1-stub-generation</id> <goals> <goal>generate</goal> </goals> <configuration> <schemaDirectory>src/main/resources/wsdl</schemaDirectory> <schemaIncludes> <include>v1/*.xsd</include> </schemaIncludes> <generatePackage>org.app2.ws.generated.v1</generatePackage> <generateDirectory>${project.build.directory}/generated-sources/v1</generateDirectory> <strict>true</strict> </configuration> </execution> <execution> <id>app2-v2-stub-generation</id> <goals> <goal>generate</goal> </goals> <configuration> <schemaDirectory>src/main/resources/wsdl</schemaDirectory> <schemaIncludes> <include>v2/*.xsd</include> </schemaIncludes> <generatePackage>org.app2.ws.generated.v2</generatePackage> <generateDirectory>${project.build.directory}/generated-sources/v2</generateDirectory> <strict>true</strict> </configuration> </execution> </executions> </plugin>
我解决了…
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