gpt4 book ai didi

scala - 如何在 Simple Build Tool 的子项目中共享我的 lib 文件夹

转载 作者:行者123 更新时间:2023-12-04 20:57:23 24 4
gpt4 key购买 nike

我有一个项目运行简单的构建工具作为构建工具。我所有的子项目都共享相同的依赖项,所以我希望它们使用相同的 lib 文件夹。我可以通过创建指向我的共享 lib 文件夹的符号链接(symbolic link)来做到这一点,但我希望在 sbt 中找到一个配置,让我可以更改我的库的路径。

 override def dependencyPath = ".." / "lib"

不起作用,路径中不允许使用“..”
class Top(info:ProjectInfo) extends ParentProject(info){
lazy val subproject = project("sub","Sub Project",info => SubProject(info,dependencyPath)

class SubProject extends DefaultProject(info:ProjectInfo,libdir:Path){
override def dependencyPath = libdir
}
}

不行,dependencyPath是项目相对路径
dependencyPath.absolutePath

也不起作用,因为 absolutePath 创建一个带有斜杠的字符串,并且路径可能不是从带有斜杠的字符串创建的。

最佳答案

如果您只是想将父项目的非托管类路径(即 lib -directory)添加到子项目,您可以执行以下操作:

class ParentProject(info: ProjectInfo) extends DefaultProject(info) { parent =>

class SubProject(info: ProjectInfo) extends DefaultProject(info) {
override def unmanagedClasspath =
parent.unmanagedClasspath +++ super.unmanagedClasspath
}

val someProject = project("test", "Test", new SubProject(_))
}

ParentProject 中定义路径类(例如使用 val dirJars = descendents("dir", "*.jar") )并将它们添加到 SubProject与上述相同的方法也有效。

关于scala - 如何在 Simple Build Tool 的子项目中共享我的 lib 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4054035/

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