重新编译生成的WSDL类,而不使用Maven再次生成类

时间:2015-06-26 04:08:45

标签: java web-services maven wsdl

我包含了客户端文件以获取端口以及我生成的jar中常用于客户端的一些工具,我生成这些工具以消耗一些Web服务,我面临的问题甚至是我需要生成和编译的客户端文件的小变化所有没有修改的WSDL类。 有没有办法只编译外部添加的类,并重用已经genarated类和创建jar文件。

以下是我正在使用的pom.xml

< project 
xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.logicsector</groupId>
    <artifactId>My-client</artifactId>
    <version>1.0</version>
    <name>SOAP </name>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>2.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>2.1.2</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>My-client</finalName>
        <plugins>
            <!-- Generate Java classes from WSDL during build -->
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-codegen-plugin</artifactId>
                <version>2.1.2</version>
                <executions>
                    <execution>
                        <id>generate-sources</id>
                        <phase>generate-sources</phase>
                        <configuration>
                            <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
                            <wsdlOptions>
                                <wsdlOption>
                                    <dataBinding>jaxb</dataBinding>
                                    <wsdl><!-- My WSDL URL http://domain:port/path--></wsdl>
                                    <extraargs>
                                        <extraarg>-keep</extraarg>
                                        <extraarg>-client</extraarg>
                                        <extraarg>-exsh</extraarg>
                                        <extraarg>true</extraarg>
                                    </extraargs>
                                    <BindingFiles>
                                        <BindingFile>${basedir}/binding.xjb</BindingFile>
                                    </BindingFiles>
                                </wsdlOption>
                            </wsdlOptions>
                        </configuration>
                        <goals>
                            <goal>wsdl2java</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- Add generated sources - avoids having to copy generated sources to build location -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>${basedir}/target/generated/src/main/java</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- Build the JAR with dependencies -->
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>install</phase>
                        <configuration>
                            <tasks>
                                <copy todir="../lib">
                                    <fileset file="target/my-client.jar" />
                                </copy>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

提前致谢

0 个答案:

没有答案