gpt4 book ai didi

scala - SBT 子项目相互依赖关系

转载 作者:行者123 更新时间:2023-12-04 09:16:14 25 4
gpt4 key购买 nike

这个 SBT 项目配置哪里出了问题?

我有一个父项目 A,有子项目 B1 和 B2,B2 依赖于项目 B1。

B1编译成功;但是B2的编译失败,因为它找不到B1的类。

import sbt._

class A(info: ProjectInfo) extends ParentProject(info) with IdeaProject {
lazy val B1 = project("b1", "B1", new B1(_))
lazy val B2 = project("b2", "B2", new B2(_))

class B1(info: ProjectInfo) extends DefaultWebProject(info) with IdeaProject {
override def unmanagedClasspath = super.unmanagedClasspath +++ extraJars
def baseDirectory = "lib"
def extraJars = descendents(baseDirectory, "*.jar")
}

class B2(info: ProjectInfo) extends DefaultProject(info) with IdeaProject {
override def deliverProjectDependencies =
B1.projectID :: super.deliverProjectDependencies.toList
}
}

我真的不确定我是否正确定义了 B2 和 B1 之间的依赖关系。我会使用带有此签名的项目方法来指定它:

def project(path: Path, name: String, deps: Project*): Project

...但我需要将子项目混合到 IdeaProject 特征中。

最佳答案

不过,您正在使用另一个签名:

def project [P <: Project](path : Path, name : java.lang.String, construct : (ProjectInfo) => P, deps : Project*) : P

因此,您需要 B2 来声明对 B1 的依赖。

lazy val B2 = project("b2", "B2", new B2(_), B1)

注意:我很确定我会将变量重命名为与此处的类名不同的名称,因为这会让我感到困惑,虽然它应该有效,但看起来很时髦。

关于scala - SBT 子项目相互依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4527019/

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