在 Play Framework 中启动 H2 数据库浏览器时出现问题
我目前正在使用 Play Framework,并且在启动 H2 数据库浏览器时遇到了问题。这是背景:
以前的设置:
- 我曾经使用终端使用以下命令启动 H2 数据库浏览器:
sbt h2-browser run
- 我曾经使用终端使用以下命令启动 H2 数据库浏览器:
切换到 IntelliJ:
- 后来我将 Play 应用程序配置为从 IntelliJ 运行,这改进了我的开发工作流程。
H2浏览器配置:
- 然而,我在 IntelliJ 中启动 H2 数据库浏览器时遇到了挑战。为了解决这个问题,我向 ChatGPT 寻求帮助。
添加 H2 依赖项:
- 我将 H2 依赖项添加到
build.sbt
文件中,如下所示:libraryDependencies += "com.h2database" % "h2" % "2.1.214" lazy val startH2Browser = taskKey[Unit]("Starts the H2 Browser") startH2Browser := { println("Starting H2 Browser...") org.h2.tools.Server.createWebServer("-web", "-webAllowOthers", "-webPort","8082").start() } playRunHooks += { new play.sbt.PlayRunHook { override def beforeStarted(): Unit = { startH2Browser.value } } }
- 我将 H2 依赖项添加到
遇到错误:
- 不幸的是,当我尝试启动H2浏览器时,遇到了以下错误:
build.sbt:55: error: object h2 is not a member of package org org.h2.tools.Server.createWebServer("-web", "-webAllowOthers", "-webPort", "8082").start() ^ [error] Type error in expression Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?
- 不幸的是,当我尝试启动H2浏览器时,遇到了以下错误:
H2套餐确认:
- 我想确认 SBT 已成功索引并下载 H2 包。
有人可以建议我如何正确导入文件中的 H2 依赖项build.sbt
并解决此问题吗?
您需要将依赖项添加到“元项目”中。
SBT 使用代码来构建您的应用程序。该代码本身是由文件夹中的“元项目”“管理”和构建的
project/
。(郑重声明,这是递归的,元项目可以有它的元元项目等等!)要在 中获得可用的依赖项
build.sbt
,您需要添加一个project/build-dependencies.sbt
具有如下依赖项的文件(名称并不重要,但扩展名很重要):然后,您可以删除在
build.sbt
.Test
我想您已经在应用程序本身的范围内以某种方式产生了依赖性。