sbt 发布具有不同依赖项的包

问题描述 投票:0回答:1

我有一个 sbt 项目,由 3 个不同的层组成:

  • 基地
  • impl(是一个目录,里面包含了很多不同的实现包,每个包都依赖于
    base
  • api(取决于“
    impl
    ”,可以是其中任何一个)

base
api
包中的代码始终相同,唯一可以更改的是
impl
之一,例如,我可以引入一个新的实现。

现在我想根据每个实现以不同的名称在本地发布 api 包,例如一个名为

api-impl1
api-impl2
等的包。

我尝试过的一件事就是一件一件地做,这并不是一个聪明的主意。所以我想知道 sbt 是否有动力为我做这件事

scala sbt
1个回答
0
投票

如果 sbt 有动力为我做这件事

是的,例如这里我使用 Scala 2.13.0-2.13.13 生成项目

项目/Build.scala

import sbt.*
import Keys.*

object Build extends AutoPlugin {
  override def extraProjects: Seq[Project] = (0 to 13).map(i => {
    val name = s"proj2_13_$i"
    Project(name, file(name))
      .settings(scalaVersion := s"2.13.$i")
  })
}

© www.soinside.com 2019 - 2024. All rights reserved.