我正在将我们的构建从ant转换到gradle,在使用ant任务wsimport时遇到了一个问题。
这是蚂蚁的原作
<wsimport sourcedestdir="${module.local-lib.dir}"
destdir="${module.local-lib.dir}"
wsdl="${common.wsdl.dir}/${wsdl.file.name}"
xadditionalHeaders="true"
fork="true">
<binding dir="${wsdl.dir}" includes="jaxb-bindings.xml,jaxws-bindings.xml"/>
</wsimport>这个很好用。
从格拉德尔我做了很多尝试..。
ant{
taskdef(name:'wsimport', classname:'com.sun.tools.ws.ant.WsImport', classpath:configurations.tools.asPath)
wsimport(
keep:true,
destdir: tempDestFile,
wsdl:"${common_WSDL_dir}/${current_wsdl_name}.wsdl",
xadditionalHeaders:true
){
binding(dir:file("${module_src_main_wsdl}"), includes:"${jaxws_consumed_binding}")
}
}错误属性"Type“已经定义--这使我认为绑定没有被接受(至少不是两者都接受),因为它对ant有效。
ant{
taskdef(name:'wsimport', classname:'com.sun.tools.ws.ant.WsImport', classpath:configurations.tools.asPath)
wsimport(
keep:true,
destdir: tempDestFile,
wsdl:"${common_WSDL_dir}/${current_wsdl_name}.wsdl",
xadditionalHeaders:true
){
binding="${module_src_main_wsdl}/jaxb-bindings.xml"
binding="${module_src_main_wsdl}/jaxws-bindings.xml"
}
}错误属性"Type“已经定义--这使我认为绑定没有被接受(至少不是两者都接受),因为它对ant有效。
ant{
taskdef(name:'wsimport', classname:'com.sun.tools.ws.ant.WsImport', classpath:configurations.tools.asPath)
wsimport(
keep:true,
destdir: tempDestFile,
wsdl:"${common_WSDL_dir}/${current_wsdl_name}.wsdl",
xadditionalHeaders:true,
binding:"${module_src_main_wsdl}/jaxb-bindings.xml",
binding:"${module_src_main_wsdl}/jaxws-bindings.xml"
)
}甚至都不会开始。找到重复的命名参数‘绑定’
ant{
taskdef(name:'wsimport', classname:'com.sun.tools.ws.ant.WsImport', classpath:configurations.tools.asPath)
wsimport(
keep:true,
destdir: tempDestFile,
wsdl:"${common_WSDL_dir}/${current_wsdl_name}.wsdl",
xadditionalHeaders:true,
binding(dir"${module_src_main_wsdl}", includes:"jaxb-bindings.xml,jaxws-bindings.xml")
)
}问题:未能创建任务或类型绑定原因:名称未定义
基本上我想知道的是..。是否有一种方法可以为gradle中的wsimport定义多个绑定,就像在ant中定义wsimport一样。谢谢。
发布于 2014-02-14 17:44:40
我自己想出来的。结果却是一个不同的错误。这就是我的工作方式。
ant
{
taskdef(name:'wsimport', classname:'com.sun.tools.ws.ant.WsImport', classpath:configurations.tools.asPath)
wsimport(
keep:true,
destdir: tempDestFile,
wsdl:"${common_WSDL_dir}/${current_wsdl_name}.wsdl",
xadditionalHeaders:true
){
binding(dir:file("${module_src_main_wsdl}"), includes:"jaxb-bindings.xml,jaxws-bindings.xml")
}
}我还在wsimport中使用xjcargs (这是我从最初的问题中省略的),引用的jars命名错误。这就是工作任务的样子。
wsimport(
keep:true,
destdir: tempDestFile,
wsdl:"${f.absolutePath}",
xadditionalHeaders:true
){
binding(dir:"${common_WSDL_dir}", includes:"common-jaxb-bindings.xml,common-jaxws-bindings.xml")
xjcarg(value:configurations.compile.asPath + "/schemas-common.jar")
xjcarg(value:configurations.compile.asPath + "/compile/schemas-hrxml3_1.jar")
}发布于 2017-10-03 16:34:09
是的,这个对我来说很好。
ant {
taskdef(name: 'wsimport',
classname: 'com.sun.tools.ws.ant.WsImport',
classpath: configurations.jaxws.asPath)
wsimport(keep: true,
destdir: classesDir,
sourcedestdir: javaDir,
extension: "true",
verbose: "true",
quiet: "false",
xnocompile: "false",
xendorsed: true,
wsdlLocation: "OrderImportService.wsdl",
wsdl: "${wsdlFile}")
{
binding(dir:"${wsdlDir}", includes:"jaxb-bindings.xml,jaxws-bindings.xml")
xjcarg(value: "-XautoNameResolution")
}
}https://stackoverflow.com/questions/21636226
复制相似问题