首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sbt子项目源文件夹不是自动创建的吗?

sbt子项目源文件夹不是自动创建的吗?
EN

Stack Overflow用户
提问于 2018-05-01 23:04:58
回答 1查看 263关注 0票数 0

我使用的是sbt版本1.1.4。我的子项目构建如下:

代码语言:javascript
复制
val testDeps = Seq(
  "org.scalactic" %% "scalactic" % "3.0.5",
  "org.scalatest" %% "scalatest" % "3.0.5" % "test"
)

libraryDependencies ++= testDeps

lazy val root = project.in(file("."))
  .aggregate(
    common,
    analytics,
    website
  )

lazy val common = project.in(file("common"))
  .settings(
    libraryDependencies ++= testDeps
  )

lazy val analytics = project.in(file("analytics"))
  .dependsOn(common)
  .settings()

lazy val website = project.in(file("website"))
  .dependsOn(common)
  .settings()

我无法让sbt自动生成src/scala/...文件夹,如何做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-01 23:38:32

sbt不会自动创建源文件夹。如果你想这样做,你可以为它写一个小任务:

代码语言:javascript
复制
lazy val createSourceDirs = taskKey[Unit]("Creates source directories for all subprojects")

Global / createSourceDirs := {
  val log = streams.value.log
  val srcDirs = sourceDirectory.all(ScopeFilter(inAnyProject)).value
  srcDirs.foreach { src =>
    val dir = src / "main" / "scala"
    if (dir.exists) log.info(s"Skipping existing ${dir}")
    else {
      IO.createDirectory(dir)
      log.info(s"Created ${dir}")
    }
  }
}

我不确定这是否有用,但事实是,你能做到。如果您经常需要它,请将它添加到您的~/.sbt/1.0/global.sbt中,并在任何项目中使用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50125008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档