最近在alpha项目中新增加了一个模块alpha-dump,用于实现训练模型同步功能。但在执行 JUnit 单元测试时,一直提示”Can not found class: xxx
“,在 Problems
页签中看到如下错误信息:
我的第一反应是”是不是存在jar包冲突,导致不能正常引入 lombok 和 guava 包?“,但在 Dependency Analyzer
中并没有发现存在包冲突。
于是尝试在 Google 中查找答案,有的说是 Maven 仓库依赖下载出错了
,我就尝试把本地仓库中的依赖删除后 Reimport,发现不好使。也有的说是 Lombok 插件问题
,我就删掉 Lombok 插件重新安装,发现也不好使。翻来覆去尝试了好几种方案,问题都没有得到有效解决。
功夫不负有心人,最终发现是因为 子模块 alpha-dump 的Source、Tests、Resources 等目录同时被父模块 alpha 引用了,这就导致自动编译生成的代码被放到了错误的目录中
(如下图所示)。
解决方案:在 File -> Project Structure... -> Modules 中取消父模块 alpha 对子模块 alpha-dump 中 Source、Tests、Resources 等目录的依赖即可。
然后再 Rebuild 子模块,就能看到在 alpha-dump/target 目录下正常生成编译后的文件了,问题成功解决!
image.png
网友评论