scala - 将 Scala 中的模块项目设置为 sbt 项目?

标签 scala intellij-idea sbt intellij-15

我想知道如何将常规 scala 项目转换为 sbt 项目。我已经尝试在根目录上手动创建一个 sbt 文件,正确实现,但 Intellij 仍然无法将其识别为 sbt 项目,即它不会在“ View -> 工具窗口”中显示“SBT” "选项。

我该怎么办?我实际上想做的是创建一个包含多个(独立)模块的空项目。

从我收集到的信息来看,似乎没有办法直接添加带有 sbt 支持的模块,对吗?

谢谢

最佳答案

这是一个多项目构建的示例。根项目将它们全部“聚合”在一起,以防你想将它们全部编译在一起或将它们打包在一起,等等。“coreLibrary”项目依赖于“coreA”和“coreB”的代码。

import sbt.Keys._
import sbt._

name := "MultiProject"

lazy val root = project.in(file(".")).aggregate(coreA, coreB, coreLibrary)

lazy val coreA = Project("CoreA", file("core-a")).settings(
  organization := "org.me",
  version := "0.1-SNAPSHOT"
)

lazy val coreB = Project("CoreB", file("core-b")).settings(
  organization := "org.me",
  libraryDependencies += "org.apache.kafka" %% "kafka" % "0.8.2-beta",
  version := "0.3-SNAPSHOT"
)

lazy val coreLibrary = Project("UberCore", file("core-main")).dependsOn(coreA, coreB).settings(
  organization := "org.me",
  version := "0.2-SNAPSHOT"
)

您可以(例如)从命令行编译每个项目:

>sbt CoreB/compile

或者您可以交互式地执行此操作:

>sbt
>project CoreB
>compile

关于scala - 将 Scala 中的模块项目设置为 sbt 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33905789/

相关文章:

java - IntelliJ 代码完成不适用于新的 Java 类

scala - 对 Scala 应用程序进行指纹识别的最佳方法

scala - Play 激活器每次运行时下载资源

scala - 合并后如何保留两个可观察对象发出的项目的顺序?

scala - Spark.createDataset 中的空值

java - 如何在 Scala 或 Java 中将纪元时间增加 5 分钟

java - 如何下载快照版本?

git - 解码 IntelliJ IDEA 文件夹名称颜色

scala - 一个 Scala 项目中可以有单独的编译单元吗?

java - scala 对象单例中的方法不是静态的?