IntelliJ IDEA 2025.2 Help

SBT

使用 sbt

当您导入或创建 sbt 项目后,您可以直接在编辑器中编辑其 build.sbt 文件。 在 build.sbt 中,您可以指定编译器选项、子项目的相关信息,还可以定义任务和设置。 每次您更改 build.sbt 文件时,您需要将更改与 IntelliJ IDEA 中的项目模型同步。

您可以配置 在构建脚本更改后同步项目 选项以自动同步对 build.sbt 所做的更改。 要访问此选项,请选择 文件 | 设置 | 构建、执行、部署 | 构建工具

若要进行手动同步,请使用 sbt projects 工具窗口工具栏上的相应操作: 刷新

请注意,任何 sbt 任务都可以附加在运行配置之前执行。

打开一个现有的 sbt 项目

要创建新项目,请启动 新建项目向导 并按照向导中建议的步骤操作,例如选择 ScalaSBT ;指定项目的位置、JDK 以及 sbt 和 Scala 版本。 ( sbt 和 Scala 版本是自动获取的。)

如果 IntelliJ IDEA 当前没有打开任何项目,请点击欢迎屏幕上的 打开 (否则,从主菜单中选择 文件 | 打开)。 然后,在对话框中选择一个包含您的 sbt 项目描述的文件 build.sbt 。 点击 OK ,然后在下一个对话框中点击 选择作为项目

IntelliJ IDEA 在 IDE 中打开并同步 sbt 项目。 如果您在打开项目时需要调整导入选项,请参阅 sbt settings

确保 sbt 和 Scala 版本兼容性

通常,您会在团队中共享项目,并需要使用特定版本的 sbt。 您可以在项目的 build.properties 文件中重写 sbt 版本。

创建或 打开您的 sbt 工程。 在 项目 工具窗口中,在 源根 目录中,找到 build.properties 文件并在编辑器中打开它。 然后,在编辑器中明确指定您想在项目中使用的 sbt 版本。

sbt.version=xxx

重新导入您的项目。 (点击 SBT 工具窗口中。)

sbt 项目结构

当您创建或导入 sbt 项目时,IntelliJ IDEA 会生成以下 sbt 结构:

  • sbt project(适当的构建),定义一个项目并包含 build.sbt 文件、 srctarget 目录、模块;与常规项目相关的任何内容。

    项目工具窗口
  • build子目录中定义的 project项目。 它包含构建定义的一部分附加代码。

    sbt 源根
  • 包含 sbt 任务、命令和设置的 SBT 工具窗口,您可以执行这些任务、命令和设置。

    sbt 工具窗口

管理 sbt 项目

处理 sbt 项目时,您可以使用 build.sbt 文件对项目进行主要更改,因为 IntelliJ IDEA 将 sbt 配置视为唯一的来源。

每次您在编辑器中手动更改 build.sbt 时,您需要加载更改。 IntelliJ IDEA 在编辑器的右侧显示一个通知图标,建议对项目进行 加载 sbt 变更 (Ctrl+Shift+O)。

build.sbt 文件:加载 sbt 变更

如果您想要控制项目的导入过程,您可以手动触发操作或配置自动重新加载过程。

重新加载 sbt 项目

  1. sbt 工具窗口中,右键点击一个关联的项目。

  2. 从上下文菜单中选择 重新加载项目 重新加载项目图标

    在调用此操作时,IntelliJ IDEA 将解析 SBT 工具窗口中的项目结构。

    IntelliJ IDEA 不能只重新加载项目的一部分,它会重新加载整个项目,包括子项目和依赖项。

配置自动重载

  1. 设置 对话框(Ctrl+Alt+S )中,转到 生成、执行、部署 | 构建工具

    或者,在 SBT 工具窗口中,点击 构建工具设置 并选择 自动重载设置 选项。

    sbt 工具窗口
  2. 构建工具 设置中,指定以下选项:

    构建工具设置
    • 在构建脚本中重新加载更改 :此选项为默认选择。 如果您希望禁用自动重载并手动控制重载过程,请取消选中此复选框。

    • 任何更改 :如果您希望在对 build.sbt 或外部更改进行任何更改后自动重新加载项目,请选择此选项。

      每次您在编辑器中手动更改 sbt build 脚本时,都需要加载更改。 IntelliJ IDEA 在编辑器右侧显示一个通知图标,提示对项目进行 加载 sbt 变更 (Ctrl+Shift+O)。

      sbt 构建脚本

      使用 任何更改 选项,IntelliJ IDEA 将自动重新加载所有更改。

    • 外部更改 :当您选择此选项时,IntelliJ IDEA 仅在 VCS 更改和在 IDE 外部对构建文件进行更改后自动重新加载项目。

  1. 打开您的 build.sbt

  2. 请指定以下代码:

    val localDep = RootProject(file("/path/to/project"))

    在这种情况下, localDep 是位于文件系统某处的项目,并将作为模块导入。

  3. 重新加载您的项目。 (点击 SBT 工具窗口中。)

    IntelliJ IDEA 会在 项目 工具窗口以及 SBT 工具窗口中显示已添加的项目。

将子项目或模块添加到 sbt 项目

  1. 在编辑器中打开 build.sbt

  2. 例如:

    lazy val sampleModule = (project in file("sampleModule"))

    在这种情况下, "sampleModule" 是您要添加的子项目。 您可以指定多个子项目。

  3. 重新导入您的项目。 (点击 重新导入项目SBT 工具窗口中。)

    IntelliJ IDEA 生成一个包含适当信息的子项目目录,并在 项目SBT 工具窗口中显示。

更新子项目

如果您希望在更改 Scala 版本时子项目自动更新,请为每个子项目指定 commonSettingssettings 方法调用。

  1. 打开 build.sbt

  2. 例如,指定以下代码:

    lazy val commonSettings = Seq( organization := "com.example", version := "0.1.0-SNAPSHOT", scalaVersion := "2.12.6" ) lazy val moduleSample = (project in file("moduleSample")) .settings( commonSettings )

    适当的 Scala 版本将作为依赖项添加到子项目目录中的 项目 工具窗口和 SBT 工具窗口。

使用 sbt shell

在项目启动时, sbt 项目中嵌入了一个 sbt shell。 您可以使用 sbt shell 来执行 sbt 命令和任务,运行和调试您的项目。

  • 要启动 sbt shell,请按 Ctrl+Shift+S (Windows)或 ⌘+⇧+S (macOS)。 或者,点击屏幕底部工具栏上的 sbt shell

  • 要使用 sbt shell 进行构建和导入过程,选择 使用 sbt shell 部分,位于 sbt 设置 中,并执行 使用 sbt shell 运行 Scala 应用程序 部分中描述的步骤。

  • 如需使用 sbt shell 进行调试,请参阅 使用 sbt shell 进行调试一节。

  • 要从 sbt shell 运行您的测试:

    1. 打开运行/调试配置 (运行 | 编辑配置)。

    2. 创建一个 测试配置并从可用设置中选择 使用 sbt 选项。

运行 sbt 任务

  • 您可以通过从 sbt 任务 目录中选择所需的任务来运行 sbt 任务,并在 SBT 工具窗口中查看。

  • 您可以在 sbt shell 中手动输入任务(支持代码补全),然后直接从那里运行。

  • 您可以为任务创建运行配置。 例如,您可以创建一个不在 SBT 工具窗口任务列表中的自定义任务。

    1. Alt+Shift+F10 打开运行配置。

    2. 指定运行配置设置并点击 OK。 如果您需要,可以在运行配置之前添加另一配置或任务。 点击 "添加"图标启动前 部分中,从打开的列表中选择您需要执行的内容。

  • 当您在无干扰模式(没有工具栏和工具窗口)下工作时,您可以从 Run Anything(运行任何内容) 窗口运行 sbt 任务或命令。 按两次 Ctrl 以打开窗口,输入命令后按 Enter 执行。

IntelliJ IDEA 在 sbt shell 窗口中显示结果。

使用 sbt 设置

使用 sbt settings 配置 sbt 项目、sbt 版本、导入项目更改等的构建和运行操作。

访问 sbt 设置

  1. Ctrl+Alt+S 打开设置,然后选择 构建、执行、部署|sbt

  2. 或者,点击 sbt 设置 工具窗口的工具栏上的 SBT 以访问 SBT 设置。

窗口分为两个部分: 常规设置sbt 项目

常规设置

常规设置 部分,您可以配置以下选项:

sbt 通用设置

条目

描述

JRE(J)

选择用于运行此项目的 JRE,可以从下拉列表中选择,也可以提供自定义路径。 它优先于默认的项目 SDK。

最大堆大小

指定 sbt 启动时分配的最大堆大小。

VM parameters

指定传递给 sbt 的 JVM 参数。 您可以在 JAVA_OPTS 环境变量中或在项目根目录中的 .jvmopts 文件中定义 JVM 选项。 在 IntelliJ IDEA 设置中配置的选项具有最高优先级,其次是 .jvmopts 文件中的选项,然后是 JAVA_OPTS 环境变量中的选项。

Sbt options

指定传递给 sbt 的 sbt 选项。 如需查看所有可用选项,请运行 sbt --help。 您可以在 SBT_OPTS 环境变量中或在项目根目录中的 .sbtopts 文件中定义 sbt 选项。 这些选项的优先级遵循与 JVM 参数相同的规则。

Environment variables

指定要注入到 sbt 进程中的环境变量。

Launcher (sbt-launch.jar)

指定自定义的 sbt 启动器。 默认情况下,IntelliJ IDEA 使用捆绑的 sbt-launch.jar。

sbt 项目

sbt 项目 部分,您可以配置以下选项:

sbt 项目设置

条目

描述

下载

从 sbt 重新加载项目时,选择一个选项以下载源文件:

  • Library sources :下载项目库依赖项的源代码。

  • sbt sources :下载 sbt 及其插件的源代码。

Open cross-compiled Scala 3 / Scala 2 projects as Scala 2

选择此选项以将同时针对 Scala 2 和 Scala 3 交叉编译的项目作为 Scala 2 打开。

Use separate compiler output paths

选择此选项可使用不同于 sbt 用于编译的类文件目录。

为主资源和测试资源创建单独的模块

选择此选项以将主代码和测试代码组织到不同的模块中。 有关详细信息,请参阅 博客文章

sbt shell

使用复选框控制是否使用 sbt shell 来重新加载和构建项目。

Generate managed sources during project sync

指示 sbt 在项目同步期间生成由项目启用的源代码生成器管理的源代码(例如 sbt-buildinfo、abt-twirl 以及其他类似的 sbt 插件)。

Enable debugging

选择此选项以将 sbt shell 作为可调试进程启动。 这样您就可以调试在 sbt shell 中运行的 sbt 插件代码和测试。

如需检查最常见的 sbt 问题及解决方法,请参阅 sbt 故障排除 部分。

最后修改日期: 2025年 9月 22日