gpt4 book ai didi

scala - 从子项目引用 sbt 根项目中的设置

转载 作者:行者123 更新时间:2023-12-01 00:59:49 25 4
gpt4 key购买 nike

我如何引用 baseDirectory多项目 sbt 构建中子项目中的根项目?喜欢

lazy val full: Project = Project(
id = "full",
base = file("."),
..
)

lazy val sub = Project(
id = "sub",
base = file("sub"),
..
settings = Seq(
javaSource in Compile := full.settings.baseDirectory / "foo" / "src"
)
)

这种尝试只是给了我:
: error: ambiguous reference to overloaded definition,
both method settings in trait Project of type (ss: sbt.Def.Setting[_]*)sbt.Project
and method settings in trait ProjectDefinition of type => Seq[sbt.Def.Setting[_]]
match expected type ?
javaSource in Compile := full.settings.baseDirectory / "foo" / "src",
^

最佳答案

在 sbt 中,项目只是另一个设置轴(以及配置和任务)。所以你可以使用 in运算符(operator)访问另一个项目中的设置值。获取baseDirectory的值项目中设置key full ,你会写

(baseDirectory in full).value

因此,您的完整 javaSource设置应该是:
javaSource in Compile := (baseDirectory in full).value / "foo" / "src"

请参阅 Scopes in sbt 上的文档对于整个故事。

(请注意,访问 settingsProject 方法很少能满足人们的需求。我相信它仅在编写自定义命令时才相关。)

关于scala - 从子项目引用 sbt 根项目中的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24468890/

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