【问题标题】:Custom package names cxf-codegen-plugin自定义包名称 cxf-codegen-plugin
【发布时间】:2012-09-18 07:04:01
【问题描述】:

想象一下这个场景。

我有一个名称空间为 a/b/c 的 wsdl 文件,它导入了另一个名称空间为 m/n/o 的 wsdl。 不幸的是,它们都定义了相同的 ComplexTypes XYZ。现在,当我使用 cxf-codegen-plugin 生成 Java 代码并使用自定义包名称“com.qsrs.uvw”时,最终生成的代码中只保留了一个类。有人可以帮我吗?

【问题讨论】:

  • 不要定义包名,让 cxf-codegen-plugin 完成工作。

标签: java maven wsdl cxf wsdl2java


【解决方案1】:

如果要根据命名空间生成包,这里的解决方案是:

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>2.6.0</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>yourWsdl.wsld</wsdl>
                        <extraargs>
                            <extraarg>-client</extraarg>
                            <extraarg>-verbose</extraarg>
                            <extraarg>-p</extraarg>
                            <extraarg>http://your.namespace/services/=your.package</extraarg>
                            <extraarg>-p</extraarg>
                            <extraarg>http://your.namespace2/services2/=your.package2</extraarg>
                        </extraargs>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

这个&lt;extraarg&gt;http://your.namespace2/services2/=your.package2&lt;/extraarg&gt; 会将你的命名空间映射到你想要的包。

【讨论】:

  • 感谢您的回复。请告诉我是否可以为所有生成的包指定前缀?
  • 包前缀是什么意思?
  • @Paulius..想象一下,我允许 JibX 尊重模式,我希望生成的所有包都在根包 jibx.x.y.z 下。实际问题是我有一个使用相同模式生成代码的 cxf-code-gen 插件。因此,我有两个具有相同包结构和名称的类。因此,我想将 jibx 生成的所有类放在不同的根目录下。
  • 最佳解决方案。当它不起作用时几乎在那里担心,但这是因为/= 之前。模式是namespace=desired_package
猜你喜欢
  • 2014-07-12
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2012-04-27
  • 2016-04-29
  • 2015-01-31
  • 1970-01-01
  • 2018-10-24
相关资源
最近更新 更多