繁体   English   中英

不使用惰性val的SBT多项目构建

[英]SBT multi-project build without using lazy vals

我正在处理一个包含许多子项目的大型项目,其中一些具有自己的子项目。 最重要的是,我希望其中一些是动态的-给定项目构建中某个位置的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)
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM