Java apachecxf为不同的包提供不同的服务

Java apachecxf为不同的包提供不同的服务,java,maven,cxf,Java,Maven,Cxf,我有这样的Apache Cxf maven插件配置: <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <executions> <execution> <id>generate-sources</id>

我有这样的Apache Cxf maven插件配置:

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <defaultOptions>
                    <bindingFiles>
                        <bindingfile>${basedir}/src/main/resources/jaxb-binding.general.xml</bindingfile>
                    </bindingFiles>
                </defaultOptions>
                <sourceRoot>
                    src/main/java/my/generated/services
                </sourceRoot>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>${server1}/Service1.svc?wsdl</wsdl>
                    </wsdlOption>
                    <wsdlOption>
                        <wsdl>${server2}/Service2?wsdl</wsdl>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

org.apache.cxf
cxf-codegen插件
生成源
生成源
${basedir}/src/main/resources/jaxb-binding.general.xml
src/main/java/my/generated/services
${server1}/Service1.svc?wsdl
${server2}/Service2?wsdl
wsdl2java
我基本上有两个问题,也许有人可以回答:

1) 如何将这两个服务端点提取到不同的目录?现在这两个都是“src/main/java/my/generated/services”。我想要:src/main/java/my/generated/services/service1和src/main/java/my/generated/services/service2

2) 如何设置生成的java文件包将是service1的my.generated.services.service1+(生成的文件包名称)和service2的my.generated.services.service2+(生成的文件包名称)

我尝试使用绑定文件来配置它,但只找到了特定名称空间的解决方案。。但还没有找到更通用的


谢谢你的帮助

我找到的将文件生成到不同目录的最简单方法是使用两种不同的WSDL2Java插件执行,如下所示

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <executions>
        <execution>
            <id>generate-sources-service1</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${basedir}/src/main/java/my/generated/services</sourceRoot>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>${server1}/Service1.svc?wsdl</wsdl>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
        <execution>
            <id>generate-sources-services2</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${basedir}/src/main/java/my/generated/services</sourceRoot>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>${server2}/Service2?wsdl</wsdl>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

org.apache.cxf
cxf-codegen插件
生成-sources-service1
生成源
${basedir}/src/main/java/my/generated/services
${server1}/Service1.svc?wsdl
wsdl2java
生成-sources-services2
生成源
${basedir}/src/main/java/my/generated/services
${server2}/Service2?wsdl
wsdl2java

您可以更改wsdl?非常感谢!您知道如何设置包名吗?您可以使用wsdl2java的extraargs和-p选项,请参阅和