xmlbeans-maven-plugin在windows和unix系统上生成不同的输出

时间:2013-11-19 13:31:23

标签: java maven xsd xmlbeans-maven-plugin

我正在使用xmlbeans-maven-plugin从xsd和wsdl文档的结构生成许多java bean

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xmlbeans-maven-plugin</artifactId>
    <version>2.3.3</version>
</plugin>

我有许多类似命名的元素。来自两个不同文件的以下xsd片段包含complexTypes IpType和IPType等。

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:nmspc1="http://some.system.dk" 
targetNamespace="http://some.system.dk" 
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" 
xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" > <import namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"  schemaLocation="http://schemas.xmlsoap.org/ws/2004/08/addressing"/>
<complexType name="IPType" abstract="true">
    <sequence>
        ...
    </sequence>
</complexType>
<complexType name="ExternalType" abstract="true">
    <sequence>
        ...
    </sequence>

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
    elementFormDefault = "qualified" targetNamespace = "http://www.some.dk"
    version = "20070320"
    xmlns:tns = "http://www.some.dk"
    xmlns:xs = "http://www.w3.org/2001/XMLSchema">
    <xs:element name = "ipHeader" type = "tns:ipHeaderType"/>
    <xs:complexType name = "ipType">
        <xs:sequence>
            ...
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name = "externalType">
        <xs:sequence>
            ...
        </xs:sequence>
    </xs:complexType>
...

由于某种原因,这会创建类文件IpType和IPType2。该插件枚举类型,就好像它不区分大小写。对于共享名称的文件中定义的所有complexType元素都是这种情况,但是用大写字母区分。

现在,这通常不是问题,因为我可以使用正确的类并完成它,但在这里它变得有趣: 生成的文件在不同的操作系统上不同。在Windows(和redhat 6.3)上,类名为

IpType.java
IPType2.java

和debian:

IPType.java
IpType2.java

(注意p是不同类别的资本)

这意味着当我在某些系统上构建项目时,java代码中的import语句不匹配。

我开发并使用Jenkins在几个不同的操作系统上构建,所以这是一个主要问题。

所以我有三个问题: 1.有没有办法让插件以不同的方式命名文件? 2.有没有办法使这些文件独立于操作系统 3.有没有一个能够更好地处理这个问题的插件?

0 个答案:

没有答案