使用 IntelliJ 和 sbt 构建 Scala 项目

语言

在本教程中,我们将了解如何使用 sbt 构建 Scala 项目。sbt 是一个流行的工具,用于编译、运行和测试任何规模的 Scala 项目。一旦你创建带有依赖项或多个代码文件的项目,使用 sbt(或 Maven/Gradle)等构建工具就变得至关重要。我们假设你已完成 第一个教程

创建项目

在本部分中,我们将向你展示如何在 IntelliJ 中创建项目。但是,如果你熟悉命令行,我们建议你尝试 在命令行中使用 Scala 和 sbt 入门,然后返回此处进入“编写 Scala 代码”部分。

  1. 如果你没有从命令行创建项目,请打开 IntelliJ 并选择“创建新项目”
    • 在左面板中,选择 Scala,在右面板中,选择 sbt
    • 单击下一步
    • 将项目命名为“SbtExampleProject”
  2. 如果您已在命令行中创建项目,请打开 IntelliJ,选择导入项目并打开项目的 build.sbt 文件
  3. 确保JDK 版本为 1.8,sbt 版本至少为 0.13.13
  4. 选择使用自动导入,以便在可用时自动下载依赖项
  5. 选择完成

了解目录结构

sbt 创建了许多目录,在您开始构建更复杂的项目后,这些目录可能很有用。您现在可以忽略它们中的大多数,但这里简要介绍一下每个目录的用途

- .idea (IntelliJ files)
- project (plugins and additional settings for sbt)
- src (source files)
    - main (application code)
        - java (Java source files)
        - scala (Scala source files) <-- This is all we need for now
        - scala-2.12 (Scala 2.12 specific files)
    - test (unit tests)
- target (generated files)
- build.sbt (build definition file for sbt)

编写 Scala 代码

  1. 在左侧的项目面板上,展开 SbtExampleProject => src => main
  2. 右键单击 scala 并选择新建 =>
  3. 将包命名为 example,然后单击确定(或只需按 Enter 或 Return 键)。
  4. 右键单击包 example 并选择新建 => Scala 类(如果您看不到此选项,请右键单击 SbtExampleProject,单击添加框架支持,选择Scala 并继续)
  5. 将类命名为 Main,并将类型更改为 Object
  6. 将类中的代码更改为以下内容
@main def run() =
  val ages = Seq(42, 75, 29, 64)
  println(s"The oldest person is ${ages.max}")

注意:IntelliJ 有自己的 Scala 编译器实现,有时即使 IntelliJ 指出您的代码不正确,您的代码也是正确的。您始终可以在命令行中检查 sbt 是否可以运行您的项目。

运行项目

  1. 运行菜单中,选择编辑配置
  2. 单击+ 按钮并选择sbt 任务
  3. 将其命名为 运行程序
  4. 任务字段中,键入 ~run。当您保存对项目中文件的更改时,~ 会导致 sbt 重新构建并重新运行项目。
  5. 单击确定
  6. 运行菜单上。单击运行“运行程序”
  7. 在代码中,将 75 更改为 61,并在控制台中查看更新的输出。

添加依赖项

稍作调整,我们来看看如何使用已发布的库为我们的应用添加额外功能。

  1. 打开 build.sbt 并添加以下行
libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.2"

此处,libraryDependencies 是依赖项的集合,通过使用 +=,我们将 scala-parser-combinators 依赖项添加到 sbt 在启动时将去获取的依赖项集合中。现在,在任何 Scala 文件中,你可以使用常规导入从 scala-parser-combinators 中导入类、对象等。

你可以在 Scaladex(Scala 库索引)上找到更多已发布的库,你还可以复制上述依赖项信息以粘贴到你的 build.sbt 文件中。

后续步骤

继续学习使用 IntelliJ 入门系列中的下一教程,了解 如何在 IntelliJ 中使用 ScalaTest 测试 Scala 代码

  • Scala 书籍,其中提供了一组简短的课程,介绍了 Scala 的主要功能。
  • Scala 之旅,以小巧的形式介绍 Scala 的功能。
  • Scala 练习 上继续在线互动学习 Scala。

此页面的贡献者