CXF maven 插件在错误的目录中生成类

发布于 2024-07-27 00:41:16 字数 1514 浏览 5 评论 0原文

我正在使用 maven cxf-codegen-plugin 从 wsdl 生成 java web 服务文件。 如果我尝试在默认输出目录中生成文件,该插件可以正常工作 (目标\生成源\cxf), 但如果我尝试在其他目录中生成它们,方法是:

<sourceRoot>src/main/myOtherDir</sourceRoot>

在我的 pom.xml 中, 如果我这样做,则生成文件:

mvn clean eclipse:eclipse

如果我

mvn eclipse:eclipse 

不使用“clean”,则不会生成文件...

有人知道吗...?

我的pom:

        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>${cxf.version}</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <configuration>
                        <sourceRoot>src/main/myOtherDir</sourceRoot> 
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>src/main/resources/wsdl/AccountWS.wsdl</wsdl>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

谢谢, 阿隆

I'm using maven cxf-codegen-plugin to generate java web service files from wsdl.
The plugin works fine if I'm trying to generate the files in the default output directory
(target\generated-sources\cxf),
but if I'm trying to generate them in other directory by using:

<sourceRoot>src/main/myOtherDir</sourceRoot>

in my pom.xml,
the files are generated only if I do:

mvn clean eclipse:eclipse

If I do

mvn eclipse:eclipse 

without 'clean' the files are not generated...

Does anyone have any idea....?

My pom:

        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>${cxf.version}</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <configuration>
                        <sourceRoot>src/main/myOtherDir</sourceRoot> 
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>src/main/resources/wsdl/AccountWS.wsdl</wsdl>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

Thanks,
Alon

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

拥醉 2024-08-03 00:41:17

您最好将 sourceRoot 设置在目标目录下方,以便它与其他内容一起被清理,例如:

<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>

为了确保插件始终执行,您需要将其绑定到一个阶段,例如

<executions>
  <execution>
    <id>generate-sources</id>
    <phase>process-resources</phase>
    ...
    <goals>
      <goal>wsdl2java</goal>
    </goals>
  </execution>

You are better off setting the sourceRoot below the target directory so it is cleaned along with other content, e.g.:

<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>

To ensure the plugin always executes, you need to bind it to a phase, e.g.

<executions>
  <execution>
    <id>generate-sources</id>
    <phase>process-resources</phase>
    ...
    <goals>
      <goal>wsdl2java</goal>
    </goals>
  </execution>
雪化雨蝶 2024-08-03 00:41:17

好吧,我发现了这个问题,非常尴尬......
因为我没有更新 wsdl,所以插件没有生成文件...

无论如何,apache cfx 文档指出:
对于 CXF 2.1.4 及更高版本,您不再需要指定 ,因为生成源是默认值。

感谢您的帮助

Well I found the problem, Very embarrassing...
Because I didn't update the wsdl, the plugin did not generate the files...

Anyway, the apache cfx documentation states that:
For CXF 2.1.4 and latter you don't need anymore to specify the <phase>, as generate-sources is the default.

Thanks for your help

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文