如何使用IntelliJ Idea创buildSBT项目?

我刚刚开始使用Scala / LiftWeb / Sbt进行开发,并且我想在IntelliJ Idea中导入一个Sbt项目。 其实,我设法以两种不同的方式导入我的项目:

1)与Maven。 我创build了一个Maven项目,最重要的是我创build了一个Sbt项目,然后导入到IntelliJ中。 然后,我可以轻松地启动,停止docker服务器,并做其他的事情。 但那不是我想要的。 我想做同样的事情,只是Maven免费。 这导致我

2)与Eclipse。 于是,我创build了一个新的Sbt项目(我写了一个小脚本,将Sbt项目configuration为WebProject)。 然后我使用sbt-eclipsify插件来“转换”Eclipse的项目,然后将其导入到IntelliJ(现有的源代码 – > eclipse)中。 但问题从这里开始:我无法得到IntelliJ Sbt插件的工作。

谁能帮我这个?

有三种基本的方法来创build项目 – IntelliJ的现代版本可以导入sbt项目,否则您可以使用sbt插件来生成IntelliJ项目,或使用IntelliJ Scala插件来创buildsbt项目。 基本function可以同时使用这两种解决scheme,一些复杂的构build可能有问题,所以尝试其他工具,看看它是否在那里工作。

的IntelliJ

现在IntelliJ IDEA已经变得好多了。 当前版本(14.0.2)支持Scala插件开箱即用的sbt项目。 只需安装插件,您应该能够毫无麻烦地打开Scala / sbt项目。

Scala插件在插件的首选项下

使用插件,只需指向一个项目,IDEA将为您提供一个向导来打开这种项目。

导入sbt项目

IntelliJ Scala插件

IntelliJ插件可以在这里findhttp://confluence.jetbrains.com/display/SCA/Scala+Plugin+for+IntelliJ+IDEA或者可以使用设置 – >插件对话框从IDE内直接安装。 之后可以做文件 – >新build项目 – > Scala – > SBT的。 IntelliJ将生成基本的build.sbt,下载必要的依赖项并打开项目。

SBT插件

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

SBT 12.0+和13.0+

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

旧版本:

SBT 0.11+

创build并添加以下行到~/.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创buildIDEA项目文件。

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


SBT 0.10.1 (根据插件作者,0.10.0 不起作用!)

创build并添加以下行到〜/ .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任务来创buildIDEA项目文件。

默认情况下,如果findsbt和库依赖项的分类器(即源和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 ... 

你也可以在你的项目定义中添加特质,只要你想:

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

现在我手工做这个。 这很简单。

  1. 用SBT创build项目
  2. 使用相同的根path创build一个新的IDEA项目
  3. 创build一个具有相同根path的模块
  4. 将src / main / scala设置为模块上的srcpath
  5. 将src / test / scala设置为模块上的testingpath
  6. 将scala-library.jar添加为库
  7. 将lib(如果存在)作为jar目录添加到模块库中
  8. 将lib_managed / compile(如果存在)作为jar目录添加到模块库中
  9. 将lib_managed / test(如果存在)添加为模块库中的jar目录

这是从记忆。 如果它是自动化的,那会更好,但是现在没什么大不了的。

需要注意的一点是:上述方法在新学校版本(即版本0.10和更新版本)下工作不正常,因为默认情况下,它不会将依赖项复制到lib_managed中。 你可以加

 retrieveManaged := true 

到您的build.sbt,使其将依赖关系复制到lib_managed中。

Tempus fugit和IntelliJ IDEA这几天变得好多了。 到2015年,不是吗?

话虽如此, IntelliJ IDEA 14.0.2的最新版本支持Scala插件开箱即用的 sbt项目。 只要安装插件,你应该能够打开Scala / sbt项目没有太多麻烦。

Scala插件在插件的首选项下

我在写作的时候使用了1.2.67.6.EAP插件的Early Access版本。

这个插件只是指向一个sbt项目,IDEA将会为你提供一个向导来打开这个项目。

导入sbt项目

关于sbt 0.12.4中的sbt-idea

对于sbt 0.12.4 ,系统范围的插件configuration文件 – ~/.sbt/plugins/build.sbt或者PROJECT_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插件网站以获取更多最新信息。 您也可以find我的博客条目导入基于sbt的项目到IntelliJ IDEA 13(用sbt-idea,Scala 2.11和sbt 0.12)很有用。

对于0.7

在此页面的其他地方查看答案 。

对于0.10

克隆和build立伊斯梅尔的思想:

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

如果您还没有lib目录,请创build一个sbt插件lib目录

 mkdir -p ~/.sbt/plugins/lib 

将步骤一中build立的jar子复制到这里

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

重新启动或重新加载sbt,那么你可以运行gen-idea (或者gen-idea with-classifiers如果你想要sourcesJavadoc也可以)

来源: Tackers关于消息组的build议 。

在IntelliJ IDEA 13.x本身

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

我刚刚经历了所有这些痛苦。 我花了好几天的时间想要获得一个可以接受的环境,并得出了ENSIME,SBT和JRebel将成为我一段时间的开发环境的结论。 是的,这是回到了Emacs,但是ENSIME把它变成了一个重构,debugging支持,导航等等的想法。它不像Eclipse(Java)那么好,但是除非scala插件更好的工作,我们最好的。

直到Scala开发环境起来snuff(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/

对于2014年的答案是旧的。在IntelliJ 13.x ,插件Scala是版本0.41.2(包括SBT)。

我的SBT版本是0.13.5 (terminal: sbt sbtVersion

转到项目的根文件夹并inputterminal

 sbt idea 

您将看到两个新的隐藏文件夹.idea.idea_modules

然后在IntelliJ,文件>打开>select该项目。 它应该打开该项目没有任何问题。

在开始创buildSBT项目之前,请确保在IntelliJ IDEA中下载并启用了Scala插件。

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

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