如何用 IntelliJ 创意创建 SBT 项目?

我刚刚开始使用 Scala/LiftWeb/Sbt 开发,我想在 IntelliJ Ideas 中导入一个 Sbt 项目。 实际上,我设法用两种不同的方式导入我的项目:

1)与美芬。我创建了一个 Maven 项目,最重要的是我创建了一个 Sbt 项目,然后将其导入 IntelliJ。然后我可以轻松地启动、停止 Jetty 服务器,并做其他事情。 但那不是我想要的,我想做同样的事情,只是没有 Maven。 这让我想到

2)与 Eclipse 合作。因此,我创建了一个新的 Sbt 项目(使用我编写的一个小脚本,将 Sbt 项目配置为 WebProject)。然后,我使用 sbt-eclipsify 插件“转换”Eclipse 项目,然后将其导入 IntelliJ (现有源-> Eclipse)。 但是问题从这里开始: 我无法让 IntelliJ Sbt 插件工作。

有人能帮我吗?

79741 次浏览

我刚经历了这么多痛苦。我花了几天的时间试图建立一个可接受的环境,并得出结论: ENSIME、 SBT 和 JRebel 将在一段时间内成为我的开发环境。是的,它是回到 Emacs,但 ENSIME 把它变成一个位或一个想法与重构,调试支持,导航等。它远不及 Eclipse (Java) ,但除非 scala 插件工作得更好,否则它是我们所拥有的最好的插件。

在 Scala 开发环境达到标准(Eclipse 或 IntelliJ)之前,我不打算打扰。它们实在是太多虫子了。

参见升降机现场的讨论。

Http://groups.google.com/group/liftweb/browse_thread/thread/6e38ae7396575052#

在这个线程中,有一个指向 IntelliJ 的 HOWTO 的链接,但是尽管它可以工作,但是有很多问题使它不那么有用。

Http://blog.morroni.com/2010/07/14/setup-intellij-9-for-lift-framework-development/comment-page-1/

现在我用手来做,很简单。

  1. 使用 SBT 创建项目
  2. 使用相同的根路径创建一个新的 IDEA 项目
  3. 创建具有相同根路径的模块
  4. 将 src/main/scala 设置为模块上的 src 路径
  5. 将 src/test/scala 设置为模块上的测试路径
  6. 添加 scala-library. jar 作为库
  7. 在模块库中添加 lib (如果存在)作为 jar 目录
  8. 在一个模块库中添加 lib _ management/edit (如果存在的话)作为 jar 目录
  9. 在模块库中添加 lib _ management/test (如果存在)作为 jar 目录

这是我的记忆。如果是自动化的就更好了,不过现在这样也没什么大不了的。

注意: 上面的方法对于 new-school sbt (即0.10版本和更新版本)不能很好地工作,因为默认情况下它不会将依赖关系复制到 lib _ management 中。你可以加

retrieveManaged := true

将依赖项复制到 lib _ management 中。

有三种基本的方法来创建一个项目-现代版的 IntelliJ 可以导入 sbt 项目开箱即用,否则你可以使用 sbt 插件来生成 IntelliJ 项目,或者使用 IntelliJ Scala 插件来创建 sbt 项目。使用这两种解决方案,基本功能可以开箱即用,一些复杂的构建可能会有问题,所以尝试其他工具,看看它是否在那里工作。

情报

IntelliJ IDEA 这些天变得好多了。当前版本(14.0.2)通过 Scala 插件开箱即用地支持 sbt 项目。只要安装这个插件,你就可以毫无困难地打开 Scala/sbt 项目了。

Scala plugin under Plugins in Preferences

使用这个插件,只要指向 sbt 项目,IDEA 就会向您提供一个向导来打开这类项目。

Import sbt project

IntelliJ Scala 插件

IntelliJ 插件可以在这里找到 Http://confluence.jetbrains.com/display/sca/scala+plugin+for+intellij+idea ,或者可以使用设置-> 插件对话框直接从 IDE 中安装。然后你可以做文件-> 新建项目-> Scala-> SBT。IntelliJ 将生成基本 build.sbt,下载必要的依赖项并打开项目。

SBT 插件

基于 Sbt 文件生成想法项目的 SBt 插件可以在这里找到: https://github.com/mpeltonen/sbt-idea

SBT 12.0 + & 13.0 +

只需将 addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2")添加到 build.sbt; 不需要额外的解析器。

旧版本:

SBT 0.11 +

创建并向 ~/.sbt/plugins/build.sbtPROJECT_DIR/project/plugins.sbt添加以下代码行

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"


addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0")

在 sbt 中使用 gen-idea创建 IDEA 项目文件。

默认情况下,如果找到 sbt 和库依赖关系的分类器(即源和 javadocs)并将引用添加到 IDEA 项目文件中,则加载它们。如果不想下载/引用它们,请使用命令 gen-idea no-classifiers no-sbt-classifiers


SBT 0.10.1 (根据插件作者,0.10.0 不会工作!)

创建并添加以下代码行到 ~/. sbt/plugins/build.sbt:

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"


libraryDependencies += "com.github.mpeltonen" %% "sbt-idea" % "0.10.0"

使用 gen-idea sbt 任务创建 IDEA 项目文件。

默认情况下,如果找到 sbt 和库依赖关系的分类器(即源和 javadocs)并将引用添加到 IDEA 项目文件中,则加载它们。如果不想下载/引用它们,请使用命令 gen-idea no-classifiers no-sbt-classifiers


SBT 0.7

要使用它,只需在 sbt shell 中运行它,它将把插件作为一个外部程序使用:

 > *sbtIdeaRepo at http://mpeltonen.github.com/maven/
> *idea is com.github.mpeltonen sbt-idea-processor 0.4.0
...
> update
...
> idea
...

您还可以根据需要在项目定义中添加 trait:

import sbt._
class MyProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject {
lazy val mySubProject = project("my-subproject", "my-subproject", new DefaultProject(_) with IdeaProject)
// ...
}

对于 sbt 0.7

参见 答案就在这页的其他地方

对于 sbt 0.10

克隆并构建 Ismael 的 sbt-idea:

git clone https://github.com/ijuma/sbt-idea.git
cd sbt-idea
git checkout sbt-0.10
./sbt package

创建一个 sbt 插件库目录(如果您还没有的话)

mkdir -p  ~/.sbt/plugins/lib

把第一步中建立的罐子复制到这里

cp sbt-idea/target/scala-2.8.1.final/*.jar ~/.sbt/plugins/lib

重新启动或重新加载 sbt,然后可以运行 gen-idea(或者 gen-idea with-classifiers,如果您也想在 intelliJ 中使用 source 和 javadoc)

资料来源: Tacker 对消息组的建议

在 IntelliJ IDEA 13.x 中

现在您可以在 IDEA 中打开一个基于 SBT 的项目。它将创建必要的项目和模块,并在您更改构建脚本时随时更新您的依赖项。

Tempus fugit 和 IntelliJ IDEA 这些天变得好多了,毕竟现在是2015年,不是吗?

尽管如此,IntelliJ IDEA 14.0.2的最新版本还是支持与 Scala 插件一起开箱即用的 sbt 项目。只要安装这个插件,你就可以毫无困难地打开 Scala/sbt 项目。

Scala plugin under Plugins in Preferences

我使用的插件的早期访问版本是1.2.67.6. EAP,截至撰写本文时为止。

使用这个插件,只要指向 sbt 项目,IDEA 就会向您提供一个向导来打开这类项目。

Import sbt project

关于 sbt 0.12.4中的 sbt-idea

对于 sbt 0.12.4,系统范围的插件配置文件—— ~/.sbt/plugins/build.sbtPROJECT_DIR/project/plugins.sbt——应该有以下几行:

resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"


addSbtPlugin(dependency="com.github.mpeltonen" % "sbt-idea" % "1.5.0-SNAPSHOT")

运行 sbt gen-idea生成 IDEA 项目文件。

阅读 Sbt-idea 插件网站获得更多的最新信息。你也许会发现我的博客条目 将基于 sbt 的项目导入 IntelliJ IDEA 13(使用 sbt-IDEA、 Scala 2.11和 sbt 0.12)很有用。

2014年的答案已经过时了。 在 智能 J13.x中,Scala 插件版本是0.41.2(包括 SBT)。

我的 SBT 版本是0.13.5(终端: sbt sbtVersion)

转到项目的根文件夹并在终端中输入

sbt idea

您将看到两个新的隐藏文件夹 。想法想法 _ 模块

然后在 IntelliJ 中,File > Open > select the project。 它应该打开项目没有任何问题。

在开始创建 SBT 项目之前,请确保在 IntelliJIDEA 中下载并启用了 Scala 插件。

下面的链接解释了你需要知道的一切。

Https://www.jetbrains.com/help/idea/2016.1/getting-started-with-sbt.html