我刚开始使用Scala / LiftWeb / Sbt开发,我想在IntelliJ Idea中导入一个Sbt项目。 实际上,我设法以两种不同的方式导入我的项目:
1)与Maven合作。我创建了一个Maven项目,最重要的是我创建了一个Sbt项目,然后我在IntelliJ中导入了该项目。然后我可以轻松启动,停止Jetty服务器,并做其他的事情。 但这不是我想要的。我想做同样的事情,只是Maven-free。 这导致我
2)使用Eclipse。所以,我创建了一个新的Sbt项目(我编写了一个小脚本,将Sbt项目配置为WebProject)。然后我使用sbt-eclipsify插件来“转换”Eclipse的项目,然后我在IntelliJ中导入(现有的源 - > eclipse)。 但是问题从这里开始:我无法使用IntelliJ Sbt插件。
任何人都可以帮我吗?
答案 0 :(得分:170)
如何创建项目有三种基本方法 - 现代版本的IntelliJ可以直接导入sbt项目,否则你可以使用sbt插件生成IntelliJ项目,或使用IntelliJ Scala插件创建sbt项目。基本功能使用这两种解决方案开箱即用,一些复杂的构建可能会出现问题,因此请尝试使用其他工具来查看它是否在那里工作。
现在,IntelliJ IDEA已经变得如此好。当前版本(14.0.2)支持使用Scala插件开箱即用的sbt项目。只需安装插件,您就可以毫无困难地打开Scala / sbt项目。
使用该插件,只需指向一个sbt项目,IDEA将为您提供一个向导来打开这种项目。
IntelliJ插件可以在这里找到 http://confluence.jetbrains.com/display/SCA/Scala+Plugin+for+IntelliJ+IDEA或者可以使用Settings - >在IDE中安装directoly。插件对话框。之后可以做文件 - >新项目 - > Scala - > SBT为基础。 IntelliJ将生成基本的build.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.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
来创建IDEA项目文件。
默认情况下,如果找到并将引用添加到IDEA项目文件,则会加载sbt和库依赖项的分类器(即源和javadoc)。如果您不想下载/引用它们,请使用命令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项目文件。
默认情况下,如果找到并将引用添加到IDEA项目文件,则会加载sbt和库依赖项的分类器(即源和javadoc)。如果您不想下载/引用它们,请使用命令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 :(得分:11)
现在我手工做。这很简单。
这就是记忆。如果它是自动化的会更好,但它现在没什么大不了的。
需要注意的一点是:上述方法不适用于新学校的sbt,即版本0.10和更新版本,因为默认情况下它不会将依赖项复制到lib_managed中。你可以添加
retrieveManaged := true
到build.sbt,使其将依赖项复制到lib_managed。
答案 2 :(得分:7)
Tempus fugit 和IntelliJ IDEA已经变得如此好。毕竟是2015年,不是吗?
话虽如此,the latest version of IntelliJ IDEA 14.0.2支持the Scala plugin开箱即用的sbt项目。只需安装插件,你就可以毫不费力地打开Scala / sbt项目。
我正在使用该插件的Early Access版本,截至撰写本文时为1.2.67.6.EAP。
使用插件只需指向一个sbt项目,IDEA将为您提供一个向导来打开这种项目。
对于sbt 0.12.4 ,系统范围的插件配置文件 - ~/.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项目文件。
阅读the sbt-idea plugin website以获取更多最新信息。您还可以找到我的博客条目Importing sbt-based project to IntelliJ IDEA 13 (with sbt-idea, Scala 2.11 and sbt 0.12)。
答案 3 :(得分:5)
对于sbt 0.7
请参阅the answer elsewhere on this page。
对于sbt 0.10
克隆并建立伊斯梅尔的想法:
git clone https://github.com/ijuma/sbt-idea.git
cd sbt-idea
git checkout sbt-0.10
./sbt package
如果您还没有
,请创建一个sbt插件lib目录mkdir -p ~/.sbt/plugins/lib
将步骤1中构建的jar复制到此处
cp sbt-idea/target/scala-2.8.1.final/*.jar ~/.sbt/plugins/lib
重新启动或重新加载sbt,然后你可以运行gen-idea
(或gen-idea with-classifiers
如果你想在intelliJ中使用源代码和javadoc)
来源:Tackers' suggestion on the message group。
在IntelliJ IDEA 13.x本身
您现在可以在IDEA中打开基于SBT的项目。它将创建必要的项目和模块,并在您对构建脚本进行更改时使您的依赖项保持最新。
答案 4 :(得分:2)
我刚刚经历了所有这些痛苦。我花了几天时间试图获得一个可接受的环境,并得出结论,ENSIME,SBT和JRebel将成为我的开发环境已有一段时间了。是的,它回到了Emacs,但是ENSIME通过重构,调试支持,导航等将它变成了一点点或者想法。它并不像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/
答案 5 :(得分:2)
2014年的答案很老。 在 IntelliJ 13.x 中,插件Scala的版本为0.41.2(包括SBT)。
我的 SBT版本为0.13.5 (终端:sbt sbtVersion
)
转到项目的根文件夹并输入终端
sbt idea
您会看到两个新的隐藏文件夹 .idea 和 .idea_modules 。
然后在IntelliJ中,文件>打开>选择项目。 它应该没有任何问题地打开项目。
答案 6 :(得分:0)
在开始创建SBT项目之前,请确保在IntelliJ IDEA中下载并启用了Scala插件。
以下链接说明了您需要了解的所有内容。
https://www.jetbrains.com/help/idea/2016.1/getting-started-with-sbt.html