sbt - 深层儿童模块

时间:2018-01-11 11:20:38

标签: scala sbt

我是sbt的新手,我想重现一个包含许多嵌套模块的复杂项目结构。

例如,我有以下结构:

.
build.sbt
|_web
  |_api
  |_dto
|_domain

build.sbt如下:

name := "myProject"

version := "1.0"

scalaVersion := "2.12.4"

resolvers += Resolver.sonatypeRepo("public")

libraryDependencies += "com.typesafe.play" %% "play" % "2.6.10"

lazy val commonSettings = Seq(
  organization := "com.example",
  version := "0.1",
  scalaVersion := "2.12.4"
)

// root module
lazy val root = (project in file("."))
  .aggregate(domain, web)
// domain module
lazy val domain = project.settings(commonSettings)
// web module
lazy val web = project.settings(
  commonSettings,
  libraryDependencies := Seq("com.typesafe.play" %% "play" % "2.6.10"),
  name := "myproj-web"
).dependsOn(domain)

// web api module
lazy val webApi = (project in file("./web/api")).settings(
  commonSettings,
  libraryDependencies := Seq("com.typesafe.play" %% "play" % "2.6.10"),
  name := "myproj-web-api"
).dependsOn(domain)

我遇到的第一个问题是我无法在web/api访问我的库,但我可以在web/中访问。 第二个问题是我不喜欢file("./web/api")。是否可以让sbt理解嵌套文件夹,因为它理解普通文件夹(如webdomain)。 此外,是否可以为每个模块设置build.sbt。例如,web包含api和dto的构建文件,但保留聚合和仅在根项目上调用构建的能力,并且构建所有其余项目。

0 个答案:

没有答案