xmlbeans-maven-plugin を使用して、xsd および wsdl ドキュメントの構造から多数の Java Bean を生成しています
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xmlbeans-maven-plugin</artifactId>
<version>2.3.3</version>
</plugin>
似たような名前の要素がいくつかあります。2 つの異なるファイルからの次の 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 コードのインポート ステートメントが一致しないことを意味します。
私は Jenkins を使用していくつかの異なるオペレーティング システムを開発および構築しているため、これは大きな問題です。
3 つの質問があります: 1. プラグイン名をファイルごとに異なるものにする方法はありますか? 2. これらのファイルをオペレーティング システムから独立させる方法はありますか? 3. これをより適切に処理するプラグインはありますか?