首页 > 解决方案 > 设置 Scala 项目

问题描述

是否有标准来设置build.sbt包含在子目录中的 Scala 项目?

我已经克隆了https://github.com/lightbend/cloudflow并在 IntelliJ 中打开它,结构如下:

在此处输入图像描述

可以看到核心包含build.sbt

如果我core在新项目窗口中打开项目,那么 IntelliJ 将识别 Scala 项目。

如何编译 Scala 项目core,同时在 IntelliJ 窗口中保持其他文件夹可用?

标签: scalaintellij-idea

解决方案


编辑:如果您确实想玩这个项目,那么导入一个 SBT 项目并选择 core 作为根就足够了。Intellij 还应该检测build.sbt是否以 root 身份打开核心。


这是SBT 参考手册

传统上,build.sbt将是项目的根。

如果你想使用他们的库,你应该在你的 sbt 文件中导入它们,除非你打算修改或分叉他们的 repo,否则你不应该克隆 repo。

要将库导入您的项目,请查看Cloudflow 的 Maven 存储库,选择项目,单击所需的版本,然后选择 SBT 选项卡。只需将这些依赖项复制并粘贴到您的build.sbt. 使用 SBT 构建项目后,您应该可以使用所有这些包。

所以在[ProjectRoot]/build.sbt某些方面

val scalaVersion = "2.13.4"

lazy val root = (project in file("."))
  .settings(
    name := "Your_Project_Name",
    scalaVersion := scalaVersion,
    libraryDependencies += "com.lightbend.cloudflow" %% "cloudflow-streamlets" % "2.0.26-RC12",
        // Either sequentially
    libraryDependencies += "com.lightbend.cloudflow" %% "cloudflow-akka" % "2.0.26-RC12",
        // Or as a sequence (note that you can have a trailing comma for these)
    libraryDependencies ++= Seq(
        "com.lightbend.cloudflow" %% "cloudflow-blueprint" % "2.0.26-RC12",
        "com.lightbend.cloudflow" %% "cloudflow-flink" % "2.0.26-RC12", // No next elemenet
    )
        // Or combo using both like above, just don't forget the commas in between
  )

推荐阅读