scala - Sbt 没有从当前目录加载项目
问题描述
当我在包含build.sbt
文件的 Scala 项目中运行 SBT 时,SBT 似乎忽略它并从不同的文件夹加载项目定义并将当前项目设置到不同的目录hsperfdata
,这很奇怪,因为它被用作 Java 性能计数器的一部分与我正在尝试做的事情无关。
SBT 也是通过 SDKMAN 安装的,当我尝试指定较低的 SDK 版本1.2.8而不是1.4.6时,它将始终使用1.4.6。我的文件中也指定了1.2.8版本。build.properties
我的堆栈跟踪:
xxxxx@MC-N369748 topic-api % sbt
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[info] welcome to sbt 1.4.6 (AdoptOpenJDK Java 1.8.0_275)
[info] loading project definition from /private/var/folders/hs/0vkhntfd557c8z8g8b_p7ly00000gp/T/hsperfdata_adu-tp01/project
[info] set current project to hsperfdata_adu-tp01 (in build file:/private/var/folders/hs/0vkhntfd557c8z8g8b_p7ly00000gp/T/hsperfdata_adu-tp01/)
[info] sbt server started at local:///Users/xxxxx/.sbt/1.0/server/143baa47709c908603e6/sock
[info] started sbt server
sbt:hsperfdata_xxxxx>
解决方案
当我们遇到这个问题时,它是由 OS X 限制 java 可执行文件的权限引起的。由于进程无法读取/写入当前目录,sbt 转移到 tmp 文件夹。
在 System Preferences => Security & Privacy 中,确保为适当的可执行文件(在这种情况下可能是 java 和 javac)打开了 Full Disk Access 属性,或者将源代码移到 OS X 认为文件系统的受保护部分中(我们将构建从用户主目录移动到 /code 并且 sbt 工作正常)。
推荐阅读
- angular - 打字稿静态函数没有接收参数
- php - PHP Group PDO 或 JSON 结果由 3 个字段和输出
- android - 在 kotlin 中使用“let”时,我的变量名和“it”有什么区别?
- regex - Laravel 应用程序的 IIS URL 重写不适用于多个 URI 段
- python - NodeJS fetch 返回的数据多于应有的数据,这不是我的 Flask 服务器发送的数据
- oauth-2.0 - 使用 Azure B2C 并通过 Apple / MSAL.JS / 隐式流登录 - 获取令牌静默失败并出现 X-Frame Deny 错误
- python-3.x - 通过 Python 为一个子元素设置多个属性
- c# - 从程序集中获取 C# 中的所有泛型类型
- python-3.x - VScode CodeRunner扩展错误在python的同一行打印值
- angular - 来自firebase cloudstore查询中单个集合的多个'in'运算符