私はmavenにとても慣れていません。wsdl2java を使用して Java ファイルを取得し、必要な jar ファイルを作成しています。問題は、URL がさまざまなソースから取得され、最終的に 4 つの異なる jar ファイルが必要になることです。
これまでのところ、最初の 2 つの jar ファイルを作成し、次の 2 つのファイルを後で処理しようとしました。そのため、「ビルド」ブロックに 2 つの異なる「実行」ブロックを作成しました。各「実行」ブロックは、それぞれ独自の wsdl ファイルをダウンロードします。これまでのところ、問題ありません。次のプラグイン:
org.codehaus.mojo axistools-maven-plugin
このように動作します。最初に、生成されたすべての Java ファイルをコンパイルし、次にすべてのファイルから jar ファイルを生成します。つまり、jar ファイルを 1 つだけ作成します。
とにかく、各「実行」ブロックの直後にwsdl2javaにコンパイルしてからjarファイルを作成するように依頼しますか? その「実行」ブロックでダウンロードした wsdl ファイルのみにそれぞれ関連する 2 つの異なる jar ファイルを取得できるということですか?
以下は pom.xml です。この時点で、生成された jar ファイルは、file1、file2、file3、file4、および file5 から生成された Java ファイルで構成されます。
file1、file2、file3 から 1 つの jar を取得し、file4 および file5 からもう 1 つの jar を取得します。
どんな助けでも大歓迎です。
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>axistools-maven-plugin</artifactId>
<version>1.4</version>
<dependencies>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>prod</id>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>
<urls>
<url>https://file1.svc?wsdl</url>
<url>https://file2.svc?wsdl</url>
<url>https://file3.svc?wsdl</url>
</urls>
<allElements>true</allElements>
<wrapArrays>false</wrapArrays>
<testCases>false</testCases>
<serverSide>false</serverSide>
<typeMappingVersion>1.2</typeMappingVersion>
</configuration>
</execution>
<execution>
<id>sandbox</id>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>
<sourceDirectory>${basedir}/wsdl</sourceDirectory>
<useEmitter>true</useEmitter>
<wsdlFiles>
<wsdlFile>file4.wsdl</wsdlFile>
<wsdlFile>file5.wsdl</wsdlFile>
</wsdlFiles>
<allElements>true</allElements>
<wrapArrays>false</wrapArrays>
<testCases>false</testCases>
<serverSide>false</serverSide>
<typeMappingVersion>1.2</typeMappingVersion>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
コメントするには長すぎるので、元の投稿を編集する必要がありました...
返信いただきありがとうございます。私はあなたの解決策を試しました。ご存じのとおり、「axistools-maven-plugin」には「maven-compiler-plugin」と「maven-jar-plugin」が組み込まれています。最初に、指定された URL からすべての wsdl ファイルをダウンロードします。異なる出力ディレクトリを作成します。ただし、コンパイル フェーズでは、すべての出力ディレクトリ内のすべての Java ファイルを一度にコンパイルしようとします。一般的な賭けであるいくつかのJavaファイルがあるため。これらの wsdl ファイルを使用すると、コンパイル時に「クラスが重複しています」というエラーが発生します。
独自のカスタム「maven-compiler-plugin」および「maven-jar-plugin」ブロックを定義し、「include」または「exclude」ブロックを追加して、コンパイルするファイルとjarファイルの作成方法をmavenに知らせることができますが、 「axistools-maven-plugin」は最初に独自の「maven-compiler-plugin」を実行するため、最初にすべての Java ファイルをコンパイルしようとしますが、「maven-compiler-plugin」を確認する前に「duplicate class」エラーが発生します。 「maven-jar-plugin」ブロック。