sbt
最后修改时间:2023 年 9 月 5 日打开现有的 sbt 项目
笔记
要创建新项目,请启动新建项目向导并按照向导中建议的步骤进行操作,例如选择Scala和sbt;指定项目的位置、JDK 以及 sbt 和 Scala 版本。(sbt 和 Scala 版本会自动获取。)
如果当前在 IntelliJ IDEA 中没有打开任何项目,请单击欢迎屏幕上的“打开” 。否则,选择文件 | 从主菜单打开。
在打开的对话框中,选择包含 sbt 项目描述build.sbt的文件。单击“确定”。
在打开的对话框中,单击“选择为项目”。
IntelliJ IDEA 在 IDE 中打开并同步 sbt 项目。如果您需要在打开项目时调整导入选项,请参阅sbt 设置。
确保 sbt 和 Scala 版本兼容性
通常,您在团队中共享您的项目,并且需要使用特定版本的 sbt。您可以覆盖项目的build.properties文件中的 sbt 版本。
创建或打开您的 sbt 项目。
在“项目”工具窗口的源根目录中,找到build.properties文件并在编辑器中将其打开。
在编辑器中明确指定要在项目中使用的 sbt 版本。
sbt.version=xxx
笔记
如果build.properties文件不存在,较新的 sbt 版本(1.0 +)将自动创建它。
重新导入您的项目。(单击sbt
工具窗口中的。)
笔记
当您尝试导入包含旧版本 sbt 的 sbt 项目时,您可能会收到错误。我们建议您升级到 sbt 版本 1.0 及更高版本,它们与 Scala 版本 2.12 兼容(需要 Java 8)。
SBT项目结构
当您创建或导入 sbt 项目时,IntelliJ IDEA 会生成以下 sbt 结构:
sbt 项目(正确的构建),它定义一个项目并包含build.sbt文件、src和目标目录、模块;与常规项目相关的任何内容。
sbt构建项目,其定义在项目子目录中。它包含属于构建定义一部分的附加代码。
sbt工具窗口,其中包含您可以执行的sbt 任务、命令和设置。
提示
有关sbt项目结构的更多信息,请参阅相关的sbt文档。
管理 sbt 项目
当您使用 sbt 项目时,您可以使用build.sbt文件对项目进行主要更改,因为 IntelliJ IDEA 将 sbt 配置视为单一事实来源。
每次在编辑器中手动更改build.sbt时,都需要加载更改。IntelliJ IDEA 在编辑器的右侧显示一个通知图标,建议加载对项目所做的sbt 更改( )。CtrlShift0O

如果您想控制项目的导入过程,可以手动触发操作或配置自动重新加载过程。
重新加载 sbt 项目
在sbt工具窗口中,右键单击链接的项目。
从上下文菜单中,选择“重新加载项目”
。
调用此操作时,IntelliJ IDEA 会解析sbt工具窗口中的项目结构。
IntelliJ IDEA 无法仅重新加载项目的一部分,它会重新加载整个项目,包括子项目和依赖项。
提示
要重新加载所有 sbt 项目,请单击sbt
工具窗口中工具栏上的。
配置自动重新加载
在“设置”对话框 ( ) 中,转到“构建、执行、部署”| 构建工具。CtrlAlt0S
或者,在sbt工具窗口中,单击
并选择“自动重新加载设置”选项。
在构建工具设置中,指定以下选项:
重新加载构建脚本中的更改:默认情况下选择此选项。如果您想禁用自动重新加载并手动控制重新加载过程,请取消选中此复选框。
任何更改:如果您希望在对build.sbt进行任何更改或外部更改后自动重新加载项目,请选择此选项。
每次在编辑器中手动更改 sbt 构建脚本时,都需要加载更改。IntelliJ IDEA 在编辑器的右侧显示一个通知图标,建议加载对项目所做的sbt 更改( )。CtrlShift0O
使用“任何更改”选项,IntelliJ IDEA 会自动重新加载所有更改。
外部更改:当您选择此选项时,IntelliJ IDEA 仅在 VCS 更改以及对 IDE 外部的构建文件进行更改后自动重新加载项目。
如果您希望子项目在更改 Scala 版本时自动更新,请为每个子项目指定commonSettings
并调用方法。settings
打开build.sbt。
例如,指定以下代码:
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 版本将添加到Project工具窗口中的子项目目录中,并作为子项目中的依赖项添加到sbt工具窗口中。
将库添加到 sbt 项目
您可以通过build.sbt文件添加sbt 依赖项,也可以在.scala文件中使用该语句。import
在编辑器中打开.scala文件。
指定要导入的库。
将插入符号放在未解析的包上并按。AltEnter
从可用意图操作列表中,选择Add sbt dependency。
按照打开的向导中建议的步骤进行操作,然后单击“完成”。
IntelliJ IDEA 下载工件,将依赖项添加到build.sbt文件和sbt工具窗口。
笔记
一旦 IntelliJ IDEA 检测到build.sbt中的更改,就会出现一条通知,建议您刷新项目。刷新您的项目。(单击sbt
工具窗口中的。)
或者,使用sbt 设置中的自动导入选项。
使用 sbt shell
sbt shell 嵌入在 sbt 项目中,并在项目启动时可用。您可以使用 sbt shell 执行 sbt 命令和任务、运行和调试项目。
要启动 sbt shell,请按Ctrl+Shift+S(对于 Windows)或⌘+⇧+S(对于 macOS)。或者,单击
位于屏幕底部的工具栏。
要使用 sbt shell 进行构建和导入过程,请选择sbt 设置中的使用 sbt shell部分,并执行使用 sbt shell 运行 Scala 应用程序部分中描述的步骤。
笔记
建议使用 sbt 版本 0.13.16.+ / 1.0.3.+。
如需使用 sbt shell 进行调试,请参阅使用 sbt shell 进行调试部分。
要从 sbt shell 运行测试:
打开运行/调试配置(运行 | 编辑配置)。
创建测试配置并从可用设置中选择use sbt选项。
提示
您还可以通过在 sbt shell 中输入来运行
test
或命令。test/Only
运行 sbt 任务
提示
您可以像执行sbt 任务一样执行 sbt命令和设置。
您可以通过从sbt工具窗口的sbt Tasks目录中选择所需的任务来运行 sbt 任务。
您可以在 sbt shell 中手动输入任务(支持代码完成)并直接从那里运行它。
您可以为任务创建运行配置。例如,您可以创建一个自定义任务,该任务不属于sbt工具窗口中的任务列表。
按此键打开运行配置。AltShiftF10
指定运行配置设置并单击“确定”。如果需要,您可以在运行配置之前添加其他配置或要执行的任务。单击“启动前”
部分,然后从打开的列表中选择您需要执行的内容。
当您在无干扰模式(没有工具栏和工具窗口)下工作时,您可以从Run Anything窗口运行 sbt 任务或命令。按两次将其打开,输入命令并按。CtrlEnter
IntelliJ IDEA 在sbt shell窗口中显示结果。
使用 sbt 设置
使用sbt 设置来配置 sbt 项目的构建和运行操作、sbt 版本、项目更改的导入等。
访问 sbt 设置
按打开 IDE 设置,然后选择“构建”、“执行”、“部署”| 顺便说一句。CtrlAlt0S
或者,单击sbt
工具窗口工具栏上的来访问 sbt 设置。
在 sbt 设置页面上,配置以下值得注意的操作:
要将正在运行的构建委托给 sbt,请在Use sbt shell旁边,选择用于导入和用于构建选项。
要通过 sbt shell 调试代码,请选择启用 sbt shell 调试
选项,以启用sbt shell 工具窗口中的调试按钮。
有关调试的更多信息,请参阅使用 sbt 进行调试。
要更改项目中的.ivy缓存位置或设置其他sbt 属性,请使用VM 参数字段。
笔记
如果您想为您的项目配置项目重新加载选项,请参阅构建工具设置。
单击“确定”保存更改。
要检查最常见的 sbt 问题和解决方法,请参阅sbt 故障排除部分。
感谢您的反馈意见!