使用Maven打包后,IntelliJ无法构建/运行Scala项目
这种情况我之前帮同事排查过好几次,大概率是Maven打包操作打乱了IntelliJ的项目构建缓存或者类路径关联,给你几个实操性强的排查步骤:
清理并彻底重构项目
先在IntelliJ里执行Build -> Clean Project,接着跑Build -> Rebuild Project。Maven的打包操作有时候会残留旧的编译产物,和IDE的构建目录冲突,清理后重新编译能强制IDE生成正确的类文件。也可以手动删掉项目根目录下的target文件夹,再重新构建,确保旧文件被完全清除。同步Maven与IntelliJ的配置
点击IntelliJ右侧Maven面板里的环形箭头「刷新」按钮,确保IDE和pom.xml的配置完全同步。你恢复pom后IDE可能没自动同步,导致类路径还是沿用了之前打包失败时的错误配置。也可以在终端里运行mvn clean命令,再回到IDE重新构建项目。检查模块编译输出路径
打开File -> Project Structure -> Modules,选中你的Scala模块,切换到「Paths」标签页,确认「Output path」和「Test output path」是否指向target/classes和target/test-classes。如果Maven操作修改了这些路径,IDE就找不到编译后的主类文件。验证主类的包名与编译产物
虽然你说运行配置里主类是对的,但还是要再核对:- 代码里的主类是否有正确的包声明,比如如果主类全限定名是
Name.Name,那代码开头应该有package Name,且类是object(Scala的主类一般是继承App的object,或者包含main方法的object)。 - 查看
target/classes目录下是否存在对应路径的.class文件,比如target/classes/Name/Name.class,如果不存在说明编译环节出了问题,自然找不到主类。
- 代码里的主类是否有正确的包声明,比如如果主类全限定名是
重置运行配置
尝试删除现有的运行配置,重新创建:点击「Edit Configurations」,选中你的运行配置删除,然后重新添加「Scala Application」,手动选择主类后再运行。有时候配置文件会因为Maven操作出现隐性错误,重置后能解决。
内容的提问来源于stack exchange,提问作者osk

