【发布时间】:2020-10-20 10:16:41
【问题描述】:
对于一个项目,我需要使用特定的 JVM 选项(-Dfile.encoding=UTF-8 和一些内存/gc 选项)启动 SBT - 但我不一定想将这些相同的选项应用于我拥有的每个 SBT 项目。
我已经看到(在 sbt-extras 中)对 .sbtopts(项目特定 SBT 命令行选项)和 .jvmopts(项目特定SBT JVM 选项)应该支持此功能的文件,如果在 SBT 项目的根目录中找到,但标准 Windows 版本的SBT(我使用的是 0.13.1 版本)似乎忽略了它们。
(sbt-extras 方法对我很有吸引力,因为假设在版本控制中跟踪 .sbtopts 和 .jvmopts,则需要零 SBT 配置希望构建该项目的人。)
是否有当前机制来指定跨平台工作的特定于项目的SBT选项?
更新:由于我最初提出这个问题,.sbtopts 和 .jvmopts 现在是 SBT 的标准 Linux 版本的一部分,并且不再需要 sbt-extras。但是Windows版本只支持.jvmopts,不识别.sbtopts。
【问题讨论】:
-
在
.jvmopts和.sbtopts中放置选项是sbt-extras 提供的附加功能,它不由SBT 本身支持。您应该尝试使用 cygwin 运行 sbt-extras。 -
更正:sbt 支持读取
.sbtopts(在当前目录中)。 sbt-extras 添加的只是.jvmopts。但是.sbtopts就足够了:例如,您可以添加-J-Xmx1G所以.sbtopts而不是将-Xmx1G添加到.jvmopts。但你是对的,sbt.bat脚本在 Windows 上无法读取... -
@JacekLaskowski 我的意思是 sbt 的标准 bash 运行程序(这里:github.com/sbt/sbt-launcher-package/blob/master/src/universal/…)确实读取了
.sbtopts的内容,但遗憾的是 Windows 运行程序没有。虽然是shell脚本,但肯定是自带SBT(0.13)的。 -
它会请求一个拉取请求 ;-)
-
更正@gourlaysama 的更正:
.sbtopts和.jvmopts都是supported since 1.3.14 (anno 2016) 并在更新的问题中提到。在写这篇评论之前我没有阅读更新,所以如果你正在阅读这篇文章,你也可能没有阅读过更新! ??????
标签: sbt