全局禁用 sbt supershell
Globally disable sbt supershell
类似于 我想阻止 sbt 使用消息和空行向 shell 发送垃圾邮件。如果我 运行 sbt 使用 sbt -Dsbt.supershell=false
选项,它会停止,但我想通过 ~/.sbt
或类似的点文件全局禁用它。我可以用总是添加此选项的包装器替换 sbt
二进制文件,但这似乎不够优雅。
我在名为 ~/.sbt/1.0/global.sbt
和 ~/.sbt/1.3/global.sbt
的文件中尝试了以下各项,但 none 有效果:
sbt.supershell := false
useSuperShell := false
sbt.useSuperShell := false
useSuperShell := false
supershell := false
ThisBuild / useSuperShell := false
作为我试图避免的一个例子,下面是我开始 sbt
我正在从事的项目时发生的事情(在编译、测试、等):
$ sbt
[info] Loading settings for project global-plugins from metals.sbt ...
[info] Loading global plugins from /Users/chris/.sbt/1.0/plugins
| => global-plugins / updateCacheName 0s
| => global-plugins / updateCacheName 0s
| => Global / skip 0s
| => global-plugins / updateCacheName 0s
| => Global / skip 0s
| => global-plugins / updateCacheName 0s
| => global-plugins / updateCacheName 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / scalaCompilerBridgeResolvers 0s
| => global-plugins / Compile / externalHooks 0s
| => global-plugins / Compile / externalHooks 0s
| => global-plugins / dependencyPositions 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / moduleSettings 0s
| => global-plugins / csrConfiguration 0s
| => global-plugins / projectDescriptors 0s
| => global-plugins / dependencyPositions 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / csrRecursiveResolvers 0s
| => global-plugins / moduleSettings 0s
| => global-plugins / csrConfiguration 0s
| => global-plugins / projectDescriptors 0s
| => global-plugins / dependencyPositions 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / csrRecursiveResolvers 0s
| => global-plugins / moduleSettings 0s
| => global-plugins / csrConfiguration 0s
| => global-plugins / projectDescriptors 0s
| => global-plugins / dependencyPositions 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / update 0s
| => global-plugins / Compile / previousCompile 0s
| => global-plugins / Compile / compileIncremental 0s
| => global-plugins / Compile / compileIncremental 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 5s
[info] Loading project definition from /Users/chris/repos/scalacheck-demo/project
| => scalacheck-demo-build / bootResolvers 0s
| => scalacheck-demo-build / bootResolvers 0s
| => scalacheck-demo-build / bootResolvers 0s
| => scalacheck-demo-build / bootResolvers 0s
| => scalacheck-demo-build / otherResolvers 0s
| => scalacheck-demo-build / dependencyPositions 0s
| => scalacheck-demo-build / dependencyPositions 0s
| => Global / classpathEntryDefinesClass 0s
| => scalacheck-demo-build / Compile / discoveredSbtPlugins 0s
| => scalacheck-demo-build / csrFallbackDependencies 0s
| => scalacheck-demo-build / Compile / unmanagedSources / allInputPathsAndAttributes 0s
| => scalacheck-demo-build / Compile / externalHooks 0s
| => scalacheck-demo-build / Compile / compileIncremental 0s
[info] Loading settings for project scalacheck-demo from secrets.sbt,build.sbt ...
[info] Set current project to scalacheckdemo (in build file:/Users/chris/repos/scalacheck-demo/)
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / previousCache 0s
| => Global / checkBuildSources 0s
| => Global / fileTreeView 0s
| => Zero / checkBuildSources / dynamicInputs 0s
| => Global / fileTreeView 0s
| => Global / previousCache 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / previousCache 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / previousCache 0s
| => Global / fileTreeView 0s
[info] sbt server started at local:///Users/chris/.sbt/1.0/server/bba992971696ad25eaa9/sock
sbt:scalacheckdemo>
sbt launcher script 提供 sbt -help
应该打印出我机器上 运行 宁 brew install sbt
安装 sbt 1.3.12 后的全局配置位置
SBT_OPTS environment variable, if unset uses ""
.sbtopts if this file exists in the current directory, its contents
are prepended to the runner args
/usr/local/etc/sbtopts if this file exists, it is prepended to the runner args
所以试着把
-Dsbt.supershell=false
in /usr/local/etc/sbtopts
这是sbt的系统级配置文件。但是我可以看到 source code is /etc/sbt/sbtopts
which then brew
seems to replace
中指定的默认位置
s.gsub! 'etc_sbt_opts_file="/etc/sbt/sbtopts"', "etc_sbt_opts_file=\"#{etc}/sbtopts\""
因此我认为最安全的选择是 运行 sbt -h
看看您机器上的值是多少。我不熟悉 nixpkgs,但你可以看看它的 source for sbt,或者直接分析生成的 sbt 启动器脚本中的 etc_sbt_opts_file
变量,也许
vim `which sbt`
类似于 sbt -Dsbt.supershell=false
选项,它会停止,但我想通过 ~/.sbt
或类似的点文件全局禁用它。我可以用总是添加此选项的包装器替换 sbt
二进制文件,但这似乎不够优雅。
我在名为 ~/.sbt/1.0/global.sbt
和 ~/.sbt/1.3/global.sbt
的文件中尝试了以下各项,但 none 有效果:
sbt.supershell := false
useSuperShell := false
sbt.useSuperShell := false
useSuperShell := false
supershell := false
ThisBuild / useSuperShell := false
作为我试图避免的一个例子,下面是我开始 sbt
我正在从事的项目时发生的事情(在编译、测试、等):
$ sbt
[info] Loading settings for project global-plugins from metals.sbt ...
[info] Loading global plugins from /Users/chris/.sbt/1.0/plugins
| => global-plugins / updateCacheName 0s
| => global-plugins / updateCacheName 0s
| => Global / skip 0s
| => global-plugins / updateCacheName 0s
| => Global / skip 0s
| => global-plugins / updateCacheName 0s
| => global-plugins / updateCacheName 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / scalaCompilerBridgeResolvers 0s
| => global-plugins / Compile / externalHooks 0s
| => global-plugins / Compile / externalHooks 0s
| => global-plugins / dependencyPositions 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / moduleSettings 0s
| => global-plugins / csrConfiguration 0s
| => global-plugins / projectDescriptors 0s
| => global-plugins / dependencyPositions 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / csrRecursiveResolvers 0s
| => global-plugins / moduleSettings 0s
| => global-plugins / csrConfiguration 0s
| => global-plugins / projectDescriptors 0s
| => global-plugins / dependencyPositions 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / csrRecursiveResolvers 0s
| => global-plugins / moduleSettings 0s
| => global-plugins / csrConfiguration 0s
| => global-plugins / projectDescriptors 0s
| => global-plugins / dependencyPositions 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / update 0s
| => global-plugins / Runtime / unmanagedClasspath 0s
| => global-plugins / update 0s
| => global-plugins / Compile / previousCompile 0s
| => global-plugins / Compile / compileIncremental 0s
| => global-plugins / Compile / compileIncremental 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 0s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 1s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 2s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 3s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 4s
| => <anon-3eb292cd> 5s
[info] Loading project definition from /Users/chris/repos/scalacheck-demo/project
| => scalacheck-demo-build / bootResolvers 0s
| => scalacheck-demo-build / bootResolvers 0s
| => scalacheck-demo-build / bootResolvers 0s
| => scalacheck-demo-build / bootResolvers 0s
| => scalacheck-demo-build / otherResolvers 0s
| => scalacheck-demo-build / dependencyPositions 0s
| => scalacheck-demo-build / dependencyPositions 0s
| => Global / classpathEntryDefinesClass 0s
| => scalacheck-demo-build / Compile / discoveredSbtPlugins 0s
| => scalacheck-demo-build / csrFallbackDependencies 0s
| => scalacheck-demo-build / Compile / unmanagedSources / allInputPathsAndAttributes 0s
| => scalacheck-demo-build / Compile / externalHooks 0s
| => scalacheck-demo-build / Compile / compileIncremental 0s
[info] Loading settings for project scalacheck-demo from secrets.sbt,build.sbt ...
[info] Set current project to scalacheckdemo (in build file:/Users/chris/repos/scalacheck-demo/)
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / previousCache 0s
| => Global / checkBuildSources 0s
| => Global / fileTreeView 0s
| => Zero / checkBuildSources / dynamicInputs 0s
| => Global / fileTreeView 0s
| => Global / previousCache 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / previousCache 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / fileTreeView 0s
| => Global / previousCache 0s
| => Global / fileTreeView 0s
[info] sbt server started at local:///Users/chris/.sbt/1.0/server/bba992971696ad25eaa9/sock
sbt:scalacheckdemo>
sbt launcher script 提供 sbt -help
应该打印出我机器上 运行 宁 brew install sbt
安装 sbt 1.3.12 后的全局配置位置
SBT_OPTS environment variable, if unset uses ""
.sbtopts if this file exists in the current directory, its contents
are prepended to the runner args
/usr/local/etc/sbtopts if this file exists, it is prepended to the runner args
所以试着把
-Dsbt.supershell=false
in /usr/local/etc/sbtopts
这是sbt的系统级配置文件。但是我可以看到 source code is /etc/sbt/sbtopts
which then brew
seems to replace
s.gsub! 'etc_sbt_opts_file="/etc/sbt/sbtopts"', "etc_sbt_opts_file=\"#{etc}/sbtopts\""
因此我认为最安全的选择是 运行 sbt -h
看看您机器上的值是多少。我不熟悉 nixpkgs,但你可以看看它的 source for sbt,或者直接分析生成的 sbt 启动器脚本中的 etc_sbt_opts_file
变量,也许
vim `which sbt`