5

Maven経由でwsdl2javaを実行しようとしていますが、いくつかの異なる方法を試しましたが、完全には成功しませんでした。私がそれをやっていた最初の方法:

<plugin>  
    <groupId>org.codehaus.mojo</groupId>  
    <artifactId>exec-maven-plugin</artifactId>  
    <version>1.1</version>  
    <executions>  
        <execution>  
            <phase>compile</phase>  
            <goals>  
                <goal>java</goal>  
            </goals>  
            <configuration>  
                <mainClass>org.apache.axis.wsdl.WSDL2Java</mainClass>  
                <arguments>  
                    <argument>-client</argument>  
                    <argument>-o</argument>  
                    <argument>gensrc</argument>  
                    <argument>wsdl/JobAPIWebWrapped.wsdl</argument>  
                </arguments>  
            </configuration>  
        </execution>  
    </executions>  
</plugin>

このバージョンは、org.apache.axis.wsdl.WSDL2Java への呼び出しにより、私が探している正確な構造を作成しますが、それを超えて他の Maven プラグインを続行することはありません。main などを実行してログを終了します。

私が試した他の方法:

<plugin>  
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>3.1.2</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>gensrc</sourceRoot>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>wsdl/JobAPIWebWrapped.wsdl</wsdl>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

この実行の問題点は、以前の実行よりもはるかに多くの Java ファイルが生成されることです。この大きなファイルセットの互換性を確認したところ、正常に動作することがわかりましたが、最初の例と同じ Java クラスで強制的に実行する方法を見つけたいと考えています。ただし、このバージョンは完成し、maven によって呼び出される次のプラグインに進むことができます。

三番:

<plugin> 
    <groupId>org.apache.axis</groupId>
    <artifactId>wsdl2java-maven-plugin</artifactId>
    <version>1.4.1-SNAPSHOT</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
        <implementationClassName>org.apache.axis.wsdl.WSDL2Java</implementationClassName>
            </configuration>
        </execution>
    </executions>
</plugin>

このバージョンは認識さえされていません...詳細ログでどこにも表示されないため、プラグインを間違って呼び出しているのではないかと思います。

私はかなり検索してきましたが、まだ成功した答えを見つけていません。最初の例を呼び出して次に進むことで、Maven セットアップを実行するシェル スクリプトを作成することに非常に近づいています。どんな助けでも大歓迎です。ありがとう。

4

2 に答える 2

4

exec-maven-plugin呼び出しを使用する代わりに、を使用WSDL2Javaする必要がありますaxistools-maven-plugin。あなたpomは次のようになります:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>axistools-maven-plugin</artifactId>
    <version>1.4</version>
    <configuration>
        <wsdlFiles>
            <wsdlFiles>wsdl/JobAPIWebWrapped.wsdl</wsdlFiles>
        </wsdlFiles>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

ところで、Apache Axis はかなり古くて壊れています。より新しく、より堅牢な Apache CXF への移行を検討する必要があります。

于 2015-08-12T17:27:03.287 に答える
0

私はあきらめて、maven用のantrunプラグインを使用することになりました:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <phase>process-classes</phase>
            <configuration>
                <tasks>
                    <java classname="org.apache.axis.wsdl.WSDL2Java" fork="true">
                        <arg value="-client"/>
                        <arg value="-o"/>
                        <arg value="gensrc"/>
                        <arg value="wsdl/JobAPIWebWrapped.wsdl"/>
                        <classpath refid="maven.compile.classpath"/>
                    </java>
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>
于 2015-08-12T19:11:04.683 に答える