[英]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.