我首先使用 CXF教程 遵循本合同。
一切进展顺利,包括从 WSDL 生成源代码,使用,build-helper-maven-plugin但是当“实现服务”的时候,即将生成的源文件夹移动RegistryResourceImpl.java到正常的源文件夹src/main/java,Eclipse 开始抱怨一些符号(如界面RegistryResource)无法识别。
意识到为普通src/main/java文件夹分配了不同的包名,我只是在RegistryResourceImpl.java导入中添加了所属包的导入RegistryResource.java:
import com.yourcompany.sample.ns.RegistryResource;
但是 Eclipse 在其当前的项目配置中似乎是盲目的com.yourcompany.sample.ns,不知道在哪里可以找到它。
我尝试在构建路径中找到一个选项来指向生成的源,但我尝试过的都没有帮助。
我有一种感觉,我错过了一些非常微不足道的东西,但它是什么?
另外,m2e(Eclipse 的 Maven 插件)不应该已经自动处理那种移动的实现文件吗?
更新(在尝试@Patrick 建议的解决方案之后):
- target/generated/src/main/java不存在,但选中“创建新文件夹”框,我能够创建它。
- 但是,在 pom.xml > Run As >Maven clean上,它会被删除(因此需要在每次清理后重新创建???)
- 如果清理后没有重新创建,则执行 pom.xml > Run As > Maven install,在完全不同的树下创建生成源:generated-sources/cxf/com/yourcompany/sample/ns. 为什么???
- 然而,该RegistryResourceImpl.java模块仍然在target/generated sources. 在这一点上,我不再看到有关“未解决的包/导入/符号”(奇怪)的投诉。
- 但是......一旦它被移动到非目标文件夹/包,即 src/main/java 下的 com.yourcompany.sample.ns,“import com.yourcompany.sample.ns.RegistryType;” 无法再次解决!
另一方面,如果我尝试将实际生成的路径添加为“源文件夹” generated-sources/cxf/com/yourcompany/sample/ns(而不是不相关/不存在target/generated/src/main/java的,生成的树target将被移动(删除)到 under /src/main/java。我不明白这种行为蚀。
最后,即使我在此处Maven执行>Update Project建议,从而摆脱“Maven 2 项目错误图标”,该模块仍然显示未解析的符号,尽管整个项目构建得非常好!RegistryResourceImpl.java
这有什么可以解释的?
是否有可能build-helper-maven-plugin不完整甚至损坏?
有没有办法让 CXF +build-helper-maven-plugin与 Eclipse 和谐地工作,这样即使项目成功构建,我也看不到“未解析符号”的那些令人不安的红色下划线?