You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ Scala报错: object mail is not a member of views.html

报错根因

该报错本质是Play框架Twirl模板的编译生成类未被构建链路识别:views.html.mail.auth 是app/views/mail/auth.scala.htmlHTML模板经Twirl插件编译后自动生成的Scala单例对象。既然同配置同事环境可正常运行、源码与依赖配置无问题,故障点都在本地构建环境的编译顺序、目录索引、插件加载环节,和JDK17版本无直接关联(Play 2.8.x及以上版本均原生兼容JDK17)。

修复步骤(按生效优先级排序)
  • 先校验模板路径合法性
    确认报错对应的模板文件完整路径为app/views/mail/auth.scala.html,不要将模板文件误放在test目录、resources目录或其他非Twirl扫描路径下,非标准路径下的模板不会触发自动编译。
  • 命令行验证sbt原生构建结果
    关闭IntelliJ,在项目根目录执行sbt clean compile做全量清理编译:
    • 如果命令行编译也抛出相同报错,检查本地sbt版本是否和团队统一版本一致,删除本地~/.sbt下对应版本的缓存后重编
    • 如果命令行编译完全正常,仅IntelliJ内飘红报错,故障点确定为IDE配置问题,和代码无关
  • 修正IntelliJ sbt构建配置
    打开IntelliJ设置页,进入Build, Execution, Deployment > Build Tools > sbt配置项:
    • 确认Project SDK选中本地安装的JDK17
    • 将Build and run using、Run tests using两个选项均设置为sbt,不要使用IntelliJ自带编译器——IntelliJ原生编译器对Twirl、sbt自动生成源码的识别存在已知缺陷,使用sbt作为构建执行器可规避绝大多数识别问题
  • 检查目录标记状态
    打开项目结构配置,确认项目根目录下的target目录未被标记为Excluded;如果已经改过构建配置还是报错,找到Twirl生成源码的目录target/scala-2.13/twirl/main,右键将其标记为Generated Sources Root,IDE会立刻重新索引该目录下的生成类,报错即时消除。
  • 刷新sbt插件依赖
    打开IntelliJ右侧的sbt工具窗口,点击刷新按钮重新拉取加载所有sbt插件,确认project/plugins.sbt中引入的Twirl插件版本和Scala 2.13、当前sbt版本匹配,插件加载完成后重新触发项目编译。

内容的提问来源于stack exchange,提问作者heuristic123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:09:20