scala - 如何使用IntelliJ Idea创建SBT项目?

标签 scala intellij-idea lift sbt

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

1) 使用 Maven。我创建了一个 Maven 项目,最重要的是创建了一个 Sbt 项目,然后将其导入到 IntelliJ 中。然后我可以轻松启动、停止码头服务器,并做其他事情。 但这不是我想要的。我想做同样的事情,只是不需要 Maven。 这引导我

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

谁能帮我解决这个问题吗?

最佳答案

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

IntelliJ

如今,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 中安装。之后就可以执行"file"->“新建项目”->“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
 ...

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

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

关于scala - 如何使用IntelliJ Idea创建SBT项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4250318/

相关文章:

memory - 电梯和码头的 PermGen 问题

android - Unresolved 依赖项 : com. hanhuy.sbt#android-sdk-plugin;1.3.19: 未找到

scala - 如何在 scala shapeless 中显示 HList 的类型

java - 无法在 IntelliJ Idea 2017.3.4 上使用 Maven 创建 RESTful Web 服务

intellij-idea - 让 Spring Boot 颜色控制台日志记录在 Intellij 中工作?

java - 如何在 Tomcat 5.5 中填充 System.getProperty()

scala - scala中的require和assert之间如何选择

java - 如何使用 java/scala 将图像数据插入 mySql mediumtext 字段?

python - 如何在新的运行工具窗口中运行相同的应用程序? Pycharm 社区 2017

scala - 提升:如何使用设计人员友好的模板构建表单?