在Scala中将模块项目设置为sbt项目?

时间:2015-11-24 23:26:11

标签: scala intellij-idea sbt intellij-15

我想知道如何将常规scala项目转换为sbt项目。我已经尝试在根目录上手动创建一个sbt文件,正确实现,但是Intellij仍然不认识这是一个sbt项目,也就是说,它不会在“View - > Tool Windows”中显示我的“ SBT“选项。

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

从我收集到的内容似乎没有办法直接添加模块支持sbt,我是对的吗?

由于

2 个答案:

答案 0 :(得分:2)

以下是多项目构建的示例。根项目"聚合"它们都是为了防止你们想要将它们全部编译在一起或将它们打包在一起等等。" 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

答案 1 :(得分:1)

我建议您使用单个多模块SBT项目。 sbt是一个很好的scala构建工具,你可以用sbt做很多事情,包括从存储库中检出一个模块并构建它。

sbt
projects
project <helloProject>

实际上,此功能允许多个人并行处理同一个项目。请看一下:http://www.scala-sbt.org/0.13.5/docs/Getting-Started/Multi-Project.html