3

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

我该怎么办?我实际上正在尝试做的是创建一个具有多个(独立)模块的空项目。

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

谢谢

4

2 回答 2

3

这是一个多项目构建的示例。根项目将它们全部“聚合”,以防您想将它们全部编译或打包在一起等。“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
于 2015-11-25T06:40:26.143 回答
1

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

sbt
projects
project <helloProject>

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

于 2015-11-25T02:51:44.347 回答