我从命令行运行wsimport来从WSDL生成java类,如下所示。
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插件。做这件事最好的方法是什么?
发布于 2019-03-02 05:35:06
正如@lunicon提到的,你应该使用ant任务,这里有一些改进,因为gradle改变了一些属性。
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
}发布于 2018-11-29 22:06:17
有关metro project site的更多详细信息,请访问web use ant task
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
}发布于 2021-11-18 08:12:23
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

https://stackoverflow.com/questions/49795433
复制相似问题