小编bo3*_*o32的帖子

build.sbt - 对 monorepo 中常见设置的子项目进行迭代

我正在使用 SBT 实现 monorepo。我想迭代我的子项目以初始化它们(因为它们具有相同的配置)并防止代码重复。

在我的build.sbt

lazy val root = (project in file("."))
    .aggregate(projects: _*)
    .settings(
        crossScalaVersions := Nil,
        publish / skip := true
    )

lazy val projects = Seq("projectA", "projectB", "projectC")
    .map((projectName: String) => (project in file(projectName))
        .settings(
            name := projectName,
            commonSettings,
            libraryDependencies ++= ModulesDependencies.get(projectName))
        .project
    )
Run Code Online (Sandbox Code Playgroud)

我收到错误:

 error: project must be directly assigned to a val, such as `val x = project`. Alternatively, you can use `sbt.Project.apply`
Run Code Online (Sandbox Code Playgroud)

根据错误消息,我也尝试使用sbt.Project.apply(projectName, file(projectName)).settings(...),但我也面临一些有趣的错误。

据我了解,SBT 似乎希望我声明为lazy val projectA = …

loops scala sbt

2
推荐指数
1
解决办法
349
查看次数

标签 统计

loops ×1

sbt ×1

scala ×1