首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gradle wsimport

gradle wsimport
EN

Stack Overflow用户
提问于 2018-04-12 19:31:26
回答 3查看 7.2K关注 0票数 1

我从命令行运行wsimport来从WSDL生成java类,如下所示。

代码语言:javascript
复制
wsimport -J-Djavax.xml.accessExternalDTD=all 
         -J-D-Djavax.xml.accessExternalSchema=all 
         -b http://www.w3.org/2001/XMLSchema.xsd 
         -b customization.xjb 
         -s genSrc https://example.com/XYZ.asmx?wsdl

我想创建一个等价的gradle任务。由于公司的限制,我不应该使用任何随机定制的gradle插件。做这件事最好的方法是什么?

EN

回答 3

Stack Overflow用户

发布于 2019-03-02 05:35:06

正如@lunicon提到的,你应该使用ant任务,这里有一些改进,因为gradle改变了一些属性。

代码语言:javascript
复制
configurations {
    jaxws
}

dependencies {
    jaxws 'com.sun.xml.ws:jaxws-tools:2.1.4'
}

task wsimport {
    ext.destDir = file("${projectDir}/src/main/generated")
    doLast {
        ant {
            sourceSets.main.output.classesDirs.inits()
            destDir.mkdirs()
            taskdef(name: 'wsimport',
                    classname: 'com.sun.tools.ws.ant.WsImport',
                    classpath: configurations.jaxws.asPath
            )
            wsimport(keep: true,
                    sourcedestdir: 'src/main/java',
                    package: "com.example.client.api",
                    wsdl: 'src/main/resources/api.wsdl') {
                xjcarg(value: "-XautoNameResolution")
            }
        }
    }
}

compileJava {
    dependsOn wsimport
    source wsimport.destDir
}
票数 5
EN

Stack Overflow用户

发布于 2018-11-29 22:06:17

有关metro project site的更多详细信息,请访问web use ant task

代码语言:javascript
复制
configurations {
    jaxws
}

dependencies {
    jaxws 'com.sun.xml.ws:jaxws-tools:2.1.4'
}

task wsimport {
    ext.destDir = file("${projectDir}/src/main/generated")
    doLast {
        ant {
            sourceSets.main.output.classesDir.mkdirs()
            destDir.mkdirs()
            taskdef(name: 'wsimport',
                    classname: 'com.sun.tools.ws.ant.WsImport',
                    classpath: configurations.jaxws.asPath
            )
            wsimport(keep: true,
                    destdir: sourceSets.main.output.classesDir,
                    sourcedestdir: destDir,
                    extension: "true",
                    verbose: "false",
                    quiet: "false",
                    package: "com.example.client.api",
                    xnocompile: "true",
                    wsdl: 'src/main/resources/api.wsdl') {
                xjcarg(value: "-XautoNameResolution")
            }
        }
    }
}

compileJava {
    dependsOn wsimport
    source wsimport.destDir
}
票数 3
EN

Stack Overflow用户

发布于 2021-11-18 08:12:23

代码语言:javascript
复制
configurations {
    jaxws
}

dependencies {
    jaxws 'com.sun.xml.ws:jaxws-tools:2.1.4'
}

task wsimport {
    ext.destDir = file("${projectDir}/src/main/generated")
    doLast {
        ant {
            destDir.mkdirs()
            taskdef(name: 'wsimport',
                    classname: 'com.sun.tools.ws.ant.WsImport',
                    classpath: configurations.jaxws.asPath
            )
            wsimport(keep: true,
                    destdir: sourceSets.main.output.classesDir,
                    sourcedestdir: destDir,
                    extension: "true",
                    verbose: "false",
                    quiet: "false",
                    package: "com.example.client.api",
                    xnocompile: "true",
                    wsdl: 'c:/projects/gluecode/src/main/resources/api.wsdl') {
                xjcarg(value: "-XautoNameResolution")
            }
        }
    }
}

此示例复制了此问题的另一个答案,但删除了一行"sourceSets.main.output.classesDir.mkdirs()“,并添加了.wsdl的绝对路径

要运行任务表单gradle,请遵循以下流程。

select or >要运行配置并创建新的任务,请从列表侧的中选择Gradle

  • 或Gradle

  1. 任务名称应与.gradle文件中提供的任务<> {}相同。
  2. 从运行配置运行该任务,然后检查控制台日志。在控制台中,记录从gradle存储库下载的一些依赖项。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49795433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档