在本教程中,我们将了解如何使用 sbt 构建 Scala 项目。sbt 是一个流行的工具,用于编译、运行和测试任何规模的 Scala 项目。一旦你创建带有依赖项或多个代码文件的项目,使用 sbt(或 Maven/Gradle)等构建工具就变得至关重要。我们假设你已完成 第一个教程。
创建项目
在本部分中,我们将向你展示如何在 IntelliJ 中创建项目。但是,如果你熟悉命令行,我们建议你尝试 在命令行中使用 Scala 和 sbt 入门,然后返回此处进入“编写 Scala 代码”部分。
- 如果你没有从命令行创建项目,请打开 IntelliJ 并选择“创建新项目”
- 在左面板中,选择 Scala,在右面板中,选择 sbt
- 单击下一步
- 将项目命名为“SbtExampleProject”
- 如果您已在命令行中创建项目,请打开 IntelliJ,选择导入项目并打开项目的
build.sbt
文件 - 确保JDK 版本为 1.8,sbt 版本至少为 0.13.13
- 选择使用自动导入,以便在可用时自动下载依赖项
- 选择完成
了解目录结构
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 代码
- 在左侧的项目面板上,展开
SbtExampleProject
=>src
=>main
- 右键单击
scala
并选择新建 => 包 - 将包命名为
example
,然后单击确定(或只需按 Enter 或 Return 键)。 - 右键单击包
example
并选择新建 => Scala 类(如果您看不到此选项,请右键单击SbtExampleProject
,单击添加框架支持,选择Scala 并继续) - 将类命名为
Main
,并将类型更改为Object
。 - 将类中的代码更改为以下内容
@main def run() =
val ages = Seq(42, 75, 29, 64)
println(s"The oldest person is ${ages.max}")
注意:IntelliJ 有自己的 Scala 编译器实现,有时即使 IntelliJ 指出您的代码不正确,您的代码也是正确的。您始终可以在命令行中检查 sbt 是否可以运行您的项目。
运行项目
- 从运行菜单中,选择编辑配置
- 单击+ 按钮并选择sbt 任务。
- 将其命名为
运行程序
。 - 在任务字段中,键入
~run
。当您保存对项目中文件的更改时,~
会导致 sbt 重新构建并重新运行项目。 - 单击确定。
- 在运行菜单上。单击运行“运行程序”。
- 在代码中,将
75
更改为61
,并在控制台中查看更新的输出。
添加依赖项
稍作调整,我们来看看如何使用已发布的库为我们的应用添加额外功能。
- 打开
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 代码。
或