如何将 SBT 类附加到 Intellij Idea?

Posted

技术标签:

【中文标题】如何将 SBT 类附加到 Intellij Idea?【英文标题】:How to attach SBT classes to Intellij Idea? 【发布时间】:2012-05-16 14:18:53 【问题描述】:

我可能有一个愚蠢的问题。我想在 IntelliJ Idea 中编写 SBT 构建脚本(Build.scala),但 IDE 无法识别 SBT 类(构建、项目等)。我将 sbt-launch.jar 附加到项目中,但它没有改变任何东西,因为 sbt-launch.jar 不包含这些类。我应该怎么做才能完成这项工作?

【问题讨论】:

最近的 IntelliJ IDEA 13.x 应该没问题了 it comes with the SBT support。 【参考方案1】:

使用sbt-idea plugin

【讨论】:

他在问他需要参考哪些 jar 文件来编辑 SBT *.scala 构建文件 - 不是,如何在 Intellij 中构建 SBT 项目。我正在努力让同样的事情发挥作用。 你试过了吗?这个插件是包含所有 sbt jars 的最简单方法 我使用那个插件。我认为你混淆了他想要做什么。他想要 *Project.scala 文件的代码完成/验证。【参考方案2】:

好的,在安装了 ZSH 的 Linux 系统上,我一直在使用以下内容来阐明类文件的位置.... 讨厌,但总比没有好

zsh

setopt extendedglob

for i ( /home/work/.sbt/boot/scala-2.9.2/org.scala-sbt/sbt/0.12.0/*(.) ); do for j ( $(zipinfo -1 $i) ) ; do echo $i $j ; done ; done | grep Task

使用上面的,我发现Task定义在:

/home/work/.sbt/boot/scala-2.9.2/org.scala-sbt/sbt/0.12.0/task-system-0.12.0.jar

我想我们需要为永远引用的类这样做。

【讨论】:

【参考方案3】:

您需要附加的是下载的 SBT 库,而不是 sbt 启动器。 SBT 启动器 jar 将 SBT 和 Scala 下载到不同的目录中。

我还建议使用 sbt-idea 插件,而不是尝试自己设置项目。但是如果你仍然想自己做,那么将以下 jar 文件添加到你的 intellij 模块中:

/scala-2.9.1/org.scala-tools.sbt/sbt/0.11.2/*.jar /scala-2.9.1/lib/*.jar

引导目录因您安装 sbt 的方式而异。如果您从 yum 或其他标准方式安装,您的引导目录将是 ~/.sbt/boot。

【讨论】:

以上是关于如何将 SBT 类附加到 Intellij Idea?的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止 sbt package 命令将哈希附加到 jar 的名称

在 IntelliJ IDE 中将 Spark 与 Scala 项目集成时出错

Intellij IDEA + SBT:跳过不存在的Sources / Javadocs的下载错误

如何将 PostgreSQL 卷附加到使用 SBT 本机打包程序生成的 Docker 映像?

将 Intellij 与 SBT 一起使用时如何更改提供的依赖项?

如何设置 sbt/scala/play 多模块项目,该项目将与 Intellij scala 插件一起正常工作