繁体   English   中英

cxf-codegen-plugin排除XSD文件

[英]cxf-codegen-plugin to exclude XSD files

我在构建时使用cxf-codegen-plugin使用Maven生成了一系列WS客户端。 这些WSDL使用如下相对路径引用一些XSD模式定义: ../someService/schema.xsd

现在,当我从Eclipse触发构造时,由于我的XSD文件放置在正确的路径中,因此可以正常工作。

但是,当我从Jenkins启动构造作业时,它失败了,因为它似乎使用Jenkins工作区作为构造的根源。

我什至不知道您是否可以更改Jenkins的这种行为,但是由于我无法控制我的Jenkins实例,所以我想知道的是cxf-codegen-plugin完全排除XSD处理,然后生成这些类明确地使用带有不同插件的不同执行阶段。

我读过你可以这样做:

<defaultOptions>
    <extraargs>
        <extraarg>-nexclude</extraarg>
        <extraarg>http://*.ws.cntxes.emprego.xunta.es</extraarg>
    </extraargs>
</defaultOptions>

但这假设我在构造之前就知道那些名称空间,而我不知道(WSDL文件是使用maven依赖插件从外部依赖中获取的)。

我也尝试过:

<wsdlRoot>${basedir}/src/main/resources/wsdl</wsdlRoot>
<includes>
    <include>
    **/*.wsdl
    </include>
</includes>
<excludes>
    <exclude>
     *.xsd
    </exclude>
</excludes>

但这是行不通的,插件只会继续解析XSD文件并生成相关的类。

我还有其他方法可以阻止XSD文件的解析,而只是处理WSDL定义吗?

编辑:这是Jenkins给我的错误:

[ERROR] Failed to execute goal org.apache.cxf:cxf-codegen-plugin:2.7.3:wsdl2java (generate-sources-wsclient-cxf) on project my-project: Execution generate-sources-wsclient-cxf of goal org.apache.cxf:cxf-codegen-plugin:2.7.3:wsdl2java failed: org.apache.cxf.wsdl11.WSDLRuntimeException: Fail to create wsdl definition from : file:/var/lib/jenkins/workspace/MYPROJECT/myproject-webservice/src/main/resources/wsdl/Descriptor/serviceDescriptor.wsdl
[ERROR] Caused by : WSDLException (at /definitions/types/xsd:schema): faultCode=PARSER_ERROR: Problem parsing '../xsd/schema.xsd'.: java.io.FileNotFoundException: /var/lib/jenkins/workspace/xsd/actividadFormativa.xsd (No such file or directory)

它正在查找詹金斯工作区的根目录,而不是/var/lib/jenkins/workspace/MYPROJECT/myproject-webservice/src/main/resources/wsdl/xsd/schema.xsd

我有同样的问题(仅与wsdl文件有关)。 经过长期研究,我发现问题是区分大小写的问题-Windows(本地CLI和eclipse构建)和linux / unix hudson / jenkins构建环境:

有问题的wsdl有一个大字母S

<wsdlOption>
 <wsdl>${basedir}/src/main/resources/Some.wsdl</wsdl>
</wsdlOption>

但是在文件系统上文件是some.wsdl所以这不是路径问题(... / workspace / ...),正如我最初最初期望的那样...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM