Howto generate classes from WSDL and XSD with gradle, equivalent to maven-jaxb2-plugin

别来无恙 提交于 2019-12-02 17:42:06

i solved it...

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

If you can't find a Gradle plugin for a particular need (and don't want to write your own plugin), look out for an Ant task. Here is one for JAXB: XJC Ant Task.

Any Ant task can be used as-is from Gradle (see Using Ant from Gradle). In the future, Gradle will also support the execution of Maven plugins.

Use the plugin as described here: https://github.com/nilsmagnus/wsdl2java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!