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