0

我有一个非常繁重的项目,其中包含许多模块,也就是 sbt 子项目,每个模块都有一个大公司名称前缀。我试图找到project命令任务键并覆盖它,但没有成功。有没有办法做到这一点?

4

1 回答 1

0

最好的办法是创建一个专用的对象,它有自己的 Scala 文件,它可以定义一个 def Project。

这样你就可以有类似的东西:

[your company].scala

object <your company> {
  def Project(name: String = "", path: sbt.File, dependencies: Seq[ModuleID] = Seq.empty, isCompanyProject: Boolean = true) = {
    val settings = ...
    val projectName = if (companyProject) {
      ... // [your company / your project / whatever] + "-" + name
    } else name

    val project = sbt.Project(projectName, path, settings = ...)

    project
  }
}

在与您的文件相同的文件夹中ApplicationBuild.scala

object ApplicationBuild extends Build {
  ...
  lazy val foo = <your company>.Project("foo", sbt.file("foo"), fooDependencies)
}

这样您就可以创建一个使用公司前缀[your company]调用的任务。project

于 2013-08-05T15:13:25.643 回答