scala - 使用 IntelliJ 和使用 sbt 的 Payframework 项目时无法清除旧类
问题描述
设置细节 1. IntelliJ Idea Community Edition 2018.2.5 with sbt plugin 2. PlayFramework 3. scalaVersion 2.12.8 4. Java 1.8 (open JDK) 5. sbt: bundled sbt with play-scala-hello-world-tutorial 6. Host操作系统:Limux Mint 18.3、KDE Plasma 5
问题: 我尝试使用 Playframework 中的 hello-world 项目模板 - 使用 IntelliJ 将其作为 sbt 项目导入并接受默认设置。进行一些编辑后,我直接删除了文件系统中的项目并用新副本替换它。但是,当我使用带有命令“run”的 sbt_command 窗口运行项目时,项目启动绑定到端口 9000 的 Play,并且正在运行的项目仍然显示应用程序的“旧”修改版本。
重现问题的步骤:
- 加载 2.7.x 版本的 play-scala-hello-world-tutorial
编辑 HomeController.scala;
从
def index() = Action { implicit request: Request[AnyContent] => Ok(views.html.index()) }
至
def index() = Action { implicit request: Request[AnyContent] => Ok("Just Play Scala") }
- sbt_run
- Ctrl+D 退出正在运行的应用程序(在 IDE 的 sbt 命令窗口中)
- 关闭 IntellijIDEA
- 删除 Idea Workspace 中的项目根文件夹
- 放置新副本 play-scala-hello-world-tutorial scala-seed 项目模板
- 导入项目
- 使用 sbt 'run' 命令运行(在 IDE 的 sbt 命令窗口中)
- 查看http://localhost:9000/ => 结果“Just Play Scala”
尝试的解决方案 - 从 IntelliJ 关闭项目并从文件系统上的 IntelliJ-Idea 工作区中删除项目根文件夹 - 执行 #1 并删除 .ivy2 和 .mvn 目录 - 尝试使用文本编辑器在运行 Fedora28 的 VM 中重现问题复制更改。一切都按预期工作。所有更改都在播放中动态重新加载,并且更改在运行应用程序中可见。
诊断 IntelliJ 无法按预期/广告重新编译 sbt 项目工作,或者我不知道如何使用 IDE 正确清除以前编译的代码。
解决方案
推荐阅读
- marklogic - 有没有办法找到词干的变体?
- php - Cf7 表单未从弹出窗口重定向
- c - 使用 Gtk/Blade 预览文件
- javascript - 如何在数组对象mongodb上使用查找
- java - 如果高度小于Android中的屏幕,如何垂直扩展ScrollView?(xml /以编程方式)
- javascript - 将变量传递给闪亮的html脚本
- docker - 在例如 vue cli 中完成 webpack 构建后包含配置变量的最佳方法
- azure - 使用 Azure Batch 的 Azure ADF 引发共享访问签名生成错误
- php - 如何在 WordPress 管理面板编辑帐户页面上显示最终成员插件的输入元字段以供管理员编辑?
- dpdk - 如何在同一主机上运行的 2 个 dpdk-testpmd 实例上运行发送和接收流量?