Intellij Idea 为build.sbt(H2)中的代码添加依赖项

aydmsdu9  于 2024-01-05  发布在  其他
关注(0)|答案(1)|浏览(154)

Play框架下启动H2数据库浏览器问题

我目前正在使用Play Framework,在启动H2数据库浏览器时遇到了一个问题。下面是背景:

*以前设置:

  • 我使用以下命令使用终端启动H2数据库浏览器:
  1. sbt
  2. h2-browser
  3. run

*切换到IntelliJ:

  • 后来我将Play应用程序配置为从IntelliJ运行,这改进了我的开发工作流程。
    *H2浏览器配置:
  • 然而,我在IntelliJ中启动H2数据库浏览器时遇到了一个挑战。为了解决这个问题,我转向ChatGPT寻求帮助。
    *添加H2依赖项:
  • 我将H2依赖项添加到build.sbt文件中,如下所示:
  1. libraryDependencies += "com.h2database" % "h2" % "2.1.214"
  2. lazy val startH2Browser = taskKey[Unit]("Starts the H2 Browser")
  3. startH2Browser := {
  4. println("Starting H2 Browser...")
  5. org.h2.tools.Server.createWebServer("-web", "-webAllowOthers", "-webPort","8082").start()
  6. }
  7. playRunHooks += {
  8. new play.sbt.PlayRunHook {
  9. override def beforeStarted(): Unit = {
  10. startH2Browser.value
  11. }
  12. }
  13. }

*遇到错误:

  • 不幸的是,当我尝试启动H2浏览器时,我遇到了以下错误:
  1. build.sbt:55: error: object h2 is not a member of package org
  2. org.h2.tools.Server.createWebServer("-web", "-webAllowOthers", "-webPort", "8082").start()
  3. ^
  4. [error] Type error in expression
  5. Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?

*H2套餐确认:

  • 我想确认SBT已经成功索引并下载了H2软件包。

有人能告诉我如何正确导入build.sbt文件中的H2依赖项并解决这个问题吗?

pokxtpni

pokxtpni1#

您需要将依赖项添加到“Meta项目”。
SBT使用代码来构建您的应用程序。此代码本身是“托管”的,并由project/文件夹中的“Meta项目”构建。(需要说明的是,这是递归的,元项目可以有其元元项目等等!)
要在build.sbt中提供依赖项,您需要添加一个文件project/build-dependencies.sbt(名称无关紧要,但扩展名重要),其依赖项如下所示:

  1. libraryDependencies += "com.h2database" % "h2" % "2.1.214"

字符串
然后你可以删除你在build.sbt中添加的同一行。我猜你已经在Test范围内对应用程序本身有了依赖。

相关问题