我首先使用 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 和谐地工作,这样即使项目成功构建,我也看不到“未解析符号”的那些令人不安的红色下划线?