cxf-codegen-plugin 不生成源
Posted
技术标签:
【中文标题】cxf-codegen-plugin 不生成源【英文标题】:cxf-codegen-plugin doesn't generate sources 【发布时间】:2012-04-27 05:11:10 【问题描述】:我正在尝试让 cxf-codegen-plugin 从我的 wsdl 文件中生成源代码。当调用 wsdl2java 手册时,会生成所需的类,但是当使用 mvn generate-sources 时没有任何反应,并且我收到消息“项目不需要目标”。直接调用插件也没用。
我的 poms 的摘录如下:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.5.2</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>$project.build.directory/generated/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>$basedir/src/main/MyServiceInterface.wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
【问题讨论】:
【参考方案1】:在我的情况下,只要我有旧的目标目录(在<sourceRoot>/path/to/target</sourceRoot>
中定义)就不会生成任何东西。只有在手动删除目标文件夹后,插件才真正开始生成源代码。
【讨论】:
【参考方案2】:至少在我的情况下,我认为它没有生成源代码,但实际上是。问题是文件夹 target/generated/cxf 被 Eclipse 指定为源文件夹,我没有手动执行。所以源代码位于我项目的顶部,在包结构中,而不是在下面的文件夹结构中,这是我一直在寻找和期待的地方。
【讨论】:
【参考方案3】:这看起来很像我(成功)在我的一个项目中配置该插件的方式;我希望这能奏效。 (我相信你可以省略<sourceRoot>
;默认设置就是你所说的那个。)
我唯一能想到的是,如果您将该插件配置放在非活动的 Maven 配置文件中,或者(更有可能)放在 <pluginManagement>
部分而不是直接的 <plugins>
部分; pluginManagement 部分覆盖插件配置的各个方面,但实际上并未启用它们以供使用。 (但它确实会影响显式使用;我知道您不想这样做。)
【讨论】:
插件管理它是。谢谢以上是关于cxf-codegen-plugin 不生成源的主要内容,如果未能解决你的问题,请参考以下文章
在maven中,CXF自动生成失败并显示“Duplicated option:frontend”?
Chrome 不读取由 elixir browserify 生成的源映射