2016-12-01 276 views
1

我想轉換我的項目從Ant到Maven。螞蟻wsdl2java到Maven wsdl2java轉換

我的名字TestServiceWSDL_TestServiceV1Http_Service.wsdl在我的項目中有一個wsdl。

當我使用Ant構建(軸WSDL2Java的),它生成的類如下:

TestServiceWSDL_TestServiceV1HttpBindingStub.java 
TestServiceWSDL_TestServiceV1HttpService.java 
TestServiceWSDL_TestServiceV1HttpServiceLocator.java 

當我將其轉換爲Maven的,我看到,它產生如下的類。

TestServiceV1_TestServiceWSDLTestServiceV1HttpPort_Client.java 
TestServiceV1_TestServiceWSDLTestServiceV1HttpPort_Server.java 
TestServiceWSDLTestServiceV1HttpService.java 

如何將我的項目轉換爲使用Maven構建並生成具有相同名稱的類?

使用

Ant命令:

<target name="wsdl2java"> 
    <axis-wsdl2java output="${gen.dir}" testcase="false" verbose="false" url="wsdl.url"> 
     <mapping namespace="namespace.from.wsdl.1" package="package.1" /> 
     <mapping namespace="namespace.from.wsdl.2" package="package.2" /> 
    </axis-wsdl2java> 
</target> 

Maven插件:

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-codegen-plugin</artifactId> 
    <version>3.1.0</version> 
    <executions> 
     <execution> 
      <id>generate-sources</id> 
      <phase>generate-sources</phase> 
      <configuration> 
       <sourceRoot>target/generated/src/main/java</sourceRoot> 
       <wsdlOptions> 
        <wsdlOption> 
         <wsdl>ws/TestServiceWSDL_TestServiceV1Http_Service.wsdl</wsdl> 
         <extraargs> 
          <extraarg>-client</extraarg> 
          <extraarg>-server</extraarg> 
          <extraarg>-verbose</extraarg> 
          <extraarg>-p</extraarg> 
          <extraarg>namespace.1=package.1</extraarg> 
          <extraarg>-p</extraarg> 
          <extraarg>namespace.2=package.2</extraarg> 
         </extraargs> 
        </wsdlOption> 
       </wsdlOptions> 
      </configuration> 
      <goals> 
       <goal>wsdl2java</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <defaultOptions> 
      <autoNameResolution>true</autoNameResolution> 
     </defaultOptions> 
     <extension>true</extension> 
     <args> 
      <arg>-npa</arg> 
     </args> 
    </configuration> 
</plugin> 

回答

1

我找不到使用CXF-CODEGEN-plugin的一個解決方案,但現在已經解決了使用它:

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>generate-sources</id> 
      <phase>generate-sources</phase> 
      <configuration> 
       <sourceRoot>target/generated/src/main/java</sourceRoot> 
       <tasks> 
        <taskdef resource="axis-tasks.properties" classpathref="maven.compile.classpath" /> 
        <mkdir dir="target/generated/src/main/java" /> 
        <axis-wsdl2java output="target/generated/src/main/java" testcase="false" 
         verbose="false" 
         url="ws/TestServiceLookupWSDL_TestServiceLookupV1Http_Service.wsdl"> 
         <mapping namespace="namespace.1" 
          package="package.1" /> 
         <mapping namespace="namespace.2" 
          package="package.2" /> 
        </axis-wsdl2java> 
       </tasks> 
      </configuration> 
      <goals> 
       <goal>run</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin>