我有一个非常繁重的项目,有很多模块,也就是sbt子项目,每个子项目都有一个很大的公司名称前缀。我试图找到project
命令任务键并覆盖它,但没有成功。有没有办法做到这一点?
答案 0 :(得分:0)
最好的办法是使用自己的Scala文件创建一个专用对象,该文件将定义一个def项目。
这样你可以有类似的东西:
[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
。