gpt4 book ai didi

scala - 如何从另一个 sbt 项目引用外部 sbt 项目?

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

我对 Scala 应用程序和通用核心库进行了以下设置:根目录

 -> /ApplicationA
-> /project
-> /build.sbt
-> /CoreLibrary
-> /project
-> /build.sbt

我想添加从 ApplicationA 到 CoreLibrary 的引用(类似于 Eclipse 项目引用),以便每次 CoreLibrary 更改时也会构建 ApplicationA。我已经为 ApplicationA 尝试了 build.Scala 的以下内容:

  val core = Project(
id = "platform-core",
base = file("../CoreLibrary"))

val main = Project(id = "application, base = file(".")).dependsOn(core)

但是,在编译 ApplicationA 时,SBT 提示依赖项只能是子目录!:

java.lang.AssertionError: assertion failed: Directory C:\git\CoreLibrary is not contained in build root C:\git\ApplicationA

这看起来完全简单,拥有此项目依赖项的正确方法是什么?

最佳答案

您可以像这样对项目进行源依赖:

 lazy val core = RootProject(file("../CoreLibrary"))

val main = Project(id = "application", base = file(".")).dependsOn(core)

我有一个多模块播放构建的工作示例:https://github.com/ahoy-jon/play2MultiModule/blob/master/playapp/project/Build.scala

但我认为正确的方法(这取决于你的上下文)是创建一个

 -> /project/
-> Build.scala
-> /ApplicationA
-> /project
-> /build.sbt
-> /CoreLibrary
-> /project
-> /build.sbt

引用两个项目以及它们之间的依赖关系。

关于scala - 如何从另一个 sbt 项目引用外部 sbt 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11653435/

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