如何使用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项目。
使用插件,只需指向一个项目,IDEA将为您提供一个向导来打开这种项目。
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.sbt
或PROJECT_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) // ... }
现在我手工做这个。 这很简单。
- 用SBT创build项目
- 使用相同的根path创build一个新的IDEA项目
- 创build一个具有相同根path的模块
- 将src / main / scala设置为模块上的srcpath
- 将src / test / scala设置为模块上的testingpath
- 将scala-library.jar添加为库
- 将lib(如果存在)作为jar目录添加到模块库中
- 将lib_managed / compile(如果存在)作为jar目录添加到模块库中
- 将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项目没有太多麻烦。
我在写作的时候使用了1.2.67.6.EAP插件的Early Access版本。
这个插件只是指向一个sbt项目,IDEA将会为你提供一个向导来打开这个项目。
关于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