gpt4 book ai didi

scala - 不使用惰性值的 SBT 多项目构建

转载 作者:行者123 更新时间:2023-12-03 02:03:11 25 4
gpt4 key购买 nike

我正在处理一个包含许多子项目的大型项目,其中一些子项目还有自己的子项目。最重要的是,我希望其中一些是动态的 - 给定项目构建中某处的 List,我想为每个元素创建一个项目。

出于这些原因,必须为 build.sbt 中的每个项目定义一个 lazy val 非常麻烦。是否有其他方法来声明项目,例如我们可以在任何地方调用的类似 addProject 的方法?有没有一些 SBT 插件可以帮助解决这个问题?

最佳答案

Sbt 使用宏将顶级 val 转换为项目,因此我认为您无法逃脱该部分。但是,您可以定义在 Project => Project 函数中构建的所有内容:(请注意,您还可以通过函数组合“免费”进行可组合性)

def myConf: Project => Project =
_.enablePlugins(ScalaJSPlugin)
.settings(scalaVersion := "2.12.0")

然后只需使用 project.configure(myConf) 进行单行项目定义:

lazy val subProject1 = project.configure(myConf)
lazy val subProject2 = project.configure(myConf)
lazy val subProject3 = project.configure(myConf)
lazy val subProject4 = project.configure(myConf)
...

关于scala - 不使用惰性值的 SBT 多项目构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42902591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com