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

2023-12-20

我刚刚开始使用 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 项目。

使用该插件,只需指向 sbt 项目,IDEA 就会为您提供一个打开此类项目的向导。

IntelliJ Scala 插件

IntelliJ 插件可以在这里找到http://confluence.jetbrains.com/display/SCA/Scala+Plugin+for+IntelliJ+IDEA 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 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 OR PROJECT_DIR/project/plugins.sbt

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

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

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

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


SBT 0.10.1(根据插件作者的说法,0.10.0won't work!)

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

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

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

Use gen-ideasbt 任务创建 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)
   // ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用IntelliJ Idea创建SBT项目? 的相关文章

随机推荐

  • 如何在 php docker 容器上安装/启用 pdo-odbc 驱动程序?

    我目前在为我的 php 应用程序编写 Dockerfile 时遇到问题 我的 Dockerfile 可以工作 但缺少连接到 MS SQL Server 数据库所需的 pdo odbc 驱动程序 这是我当前的 Dockerfile FROM
  • 为什么我得到的 .csv 文件的 mime 类型为“application/octet-stream”?

    我正在开发一个必须将 Excel 文件导入 MySQL 的 PHP 应用程序 所以我需要将excel文件转换为 csv格式 但是当我想使用它来获取它的类型时 FILE something type 我得到application octet
  • 角度中的 HttpClient 模块出现错误

    node modules angular common http http d ts 81 22 中出现错误 错误 NG6002 出现在 AppModule 的 NgModule imports 中 但无法解析为 NgModule 类 这可
  • 当 Angular 5 重新渲染一个大列表时,如何防止 chrome 滚动?

    我有一个角度组件 可以 ngFors 覆盖其他组件列表 我正在使用 ngx dnd 库来启用拖放 每当子组件列表大于屏幕尺寸并且我使用谷歌浏览器时 拖放项目会导致页面向下滚动 如果我调试 我可以看到角度渲染导致创建一个新的项目集合 并且从
  • 使用 read.table 读取文本文件

    我有一个文本文件id and name列 我试图将其读入 R 中的数据框 d read table foobar txt sep t 但由于某种原因 很多行被合并 例如 在我的数据框的第 500 行中 我会看到类似的内容 row 500 5
  • 在shell脚本中传递su密码

    如何使用 su 在 shell 脚本中传递密码 不带 sudo 和 except 我试过 echo password su root c 但它不起作用 最好的方法是sudo 但是由于您不需要最佳解决方案 因此您可以使用script反而 sl
  • 将 perl 脚本移植到 Clearcase 的图形用户界面

    我们的环境中运行着相当多的 perl 脚本 甚至为其创建分支和视图也是通过脚本完成的 现在我们正在将此 perl 脚本移植到基于 GUI 的环境 您更喜欢哪种语言 我们有一些内部工具以 C 形式返回 开发人员不在我们身边 这也可能会被移植
  • 函数的节流和去抖动之间的区别

    任何人都可以给我一个简单的解释 说明出于速率限制目的而对函数进行节流和去抖动之间的区别吗 对我来说 两者似乎都做同样的事情 我查了这两个博客来找出答案 但我仍然无法理解 http remysharp com 2010 07 21 throt
  • React Material UI ThemeProvider 未应用

    我在用着 material ui 核心 https material ui com 处理我的 React 应用程序中的主题 但由于某种原因 某些样式没有被应用 这是我的sandbox https codesandbox io s eloqu
  • 下载文件的同时更新 JProgressBar

    我尝试过不同的方法来让它工作 但它们要么不能与进度条一起工作 要么不能按照我希望的方式工作 我已经创建了一个带有进度条的新窗口 并且需要创建一个方法 该方法允许我下载文件 同时更新JProgressBar 有一种 Apache Common
  • 在spring boot 2.0.0中设置jvmRoute

    对于粘性会话 我需要设置嵌入式 tomcat 的 jvmRoute 其实只是一个 System setProperty jvmRoute node1 是必需的 但我想设置一个 via application properties 可配置属性
  • 集市 + CruiseControl.Net

    我想在我的公司设置 CruiseControl Net 目前 我们在 Bazaar 存储库中存储了多个 net 解决方案 我想使用 MSBuild 来构建每个解决方案 这似乎没有太大争议 但我看不到将 CruiseControl Net 绑
  • 如何从本地 Hadoop 2.6 安装访问 S3/S3n?

    我正在尝试在本地计算机上重现 Amazon EMR 集群 为此 我安装了目前 Hadoop 的最新稳定版本 2 6 0 http ftp cixug es apache hadoop common hadoop 2 6 0 现在我想访问 S
  • 如何在elasticsearch中通过数组元素进行搜索?

    我有一个在elasticsearch中索引的文档 content Some content with someone mention mentions someone userId 4dff31eaf8815f4df04e2d62 我尝试通
  • 为绘图中的轴区域添加大括号[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想在图中的轴旁边添加大括号 大括号应该看起来像这样 所有学分至this https stackoverflow com a 9310002
  • 获取 DOM 中的 raphael id 属性

    我已经使用一些 SVG 转换为 Rapahelhttp readysetraphael com http readysetraphael com 以下是生成的代码示例 path6233 attr id path6233 我查看了 attr
  • 如何使用 python 将 html 元素保存为 jpeg/png 或 pdf

    所以我有一个 html 页面 b Bold text b table tr td abc td tr table 我怎样才能保存 b Bold text b 或任何 html 标签到 jpeg png 或 pdf 谢谢 要在 Python
  • 如何在不增加 Oracle 序列的情况下检索其当前值?

    是否有一条 SQL 指令来检索不递增序列的值 Thanks 编辑和结论 正如 Justin Cave 所说 尝试 保存 序列号是没有用的 所以 select a seq nextval from dual 足以检查序列值 我仍然认为奥利的答
  • Applescript 播放 iTunes URL 中的音乐

    以下脚本将在 iTunes 中打开曲目 use application iTunes property trackURL itmss itunes apple com us album brahms violin concerto in d
  • 如何使用IntelliJ Idea创建SBT项目?

    我刚刚开始使用 Scala LiftWeb Sbt 开发 我想在 IntelliJ Idea 中导入一个 Sbt 项目 实际上 我设法以两种不同的方式导入我的项目 1 与Maven 我创建了一个 Maven 项目 最重要的是创建了一个 Sb