gpt4 book ai didi

java - 将包含符号链接(symbolic link)的 Java 源文件夹添加到 build.sbt 文件

转载 作者:行者123 更新时间:2023-11-30 02:22:02 28 4
gpt4 key购买 nike

我正在开发一个遗留代码存储库,我想将我的 Scala 项目添加到其中。这是目录树:

LegacyFolder
|
--JavaSourceDir1
|---SymLink to "LegacyFolder"
--JavaSourceDir2
|---SymLink to "LegacyFolder"
--MyProject

我想在我的项目中使用 JavaSourceDir1 和 JavaSourceDir2 中的 Java 文件(作为依赖项)。第一个想法是将它们添加为非托管源文件。像这样的事情:

unmanagedSourceDirectories in Compile += baseDirectory.value / "../JavaSourceDir1"

unmanagedSourceDirectories in Compile += baseDirectory.value / "../JavaSourceDir2"

问题出在 JavaSourceDir1/2 内的所有符号链接(symbolic link),它们使 SBT 变得疯狂,并且卡在运行/编译命令上。这是有道理的,因为 SBT 处于无限循环中来查找文件。

那么,我该如何解决这个问题呢?有没有办法只以非递归方式获取这些文件夹中的 Java 文件,并以某种方式将它们添加为依赖项?

最佳答案

您可以定义一个函数,直接在名为 legacyJavaSources 的给定目录下检索 *.java 文件,并将结果输入到 Compile 中的 unmanagedSources >:

lazy val root = (project in file("."))
.settings(
unmanagedSources in Compile ++=
legacyJavaSources(baseDirectory.value.getParentFile / "JavaSourceDir1"),

unmanagedSources in Compile ++=
legacyJavaSources(baseDirectory.value.getParentFile / "JavaSourceDir2")
)


def legacyJavaSources(dir: File): Vector[File] = {
(dir * "*.java").get.toVector
}

关于java - 将包含符号链接(symbolic link)的 Java 源文件夹添加到 build.sbt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46534938/

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