0

我正在使用 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. 有没有插件可以更好地处理这个问题?

4

0 回答 0