gpt4 book ai didi

scala - 如何自动聚合大型 SBT 项目中的所有子项目而不必编写大型 "aggregate"?

转载 作者:行者123 更新时间:2023-12-01 06:09:42 25 4
gpt4 key购买 nike

在我的 SBT 项目中,我有一个显式聚合所有内容的根项目,如下所示:

lazy val root = project.in(file(".")).
settings(
name := "awesome_project",
publishArtifact := false
).
aggregate(
some_project,
some_other_project,
a_cool_library,
// lots and lots and lots more
)

由于每当添加新项目时我都必须明确地将每个项目添加到 aggregate 中,有没有办法自动执行此操作?目前,我为此使用了一个 shell 脚本,它查找包含 lazy valproject 的所有行,输出每个名称后面带有逗号的列表,然后我将此列表复制粘贴到 aggregate 中,但我认为必须有更简单的方法这个。

最佳答案

我还没有在项目中尝试过,但是您可以检查反射在这种情况下是否对您有帮助:

protected val prjs = this.getClass.getDeclaredFields.flatMap { f =>
f.setAccessible(true)
f.get(this) match {
case p@Project => Some(f.asInstanceOf[Project])
case _ => None
}
}.map(x => Project.projectToRef(x))

关于scala - 如何自动聚合大型 SBT 项目中的所有子项目而不必编写大型 "aggregate"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34015064/

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