Взглянув на скрипт запуска для запуска sbt , который в моей системе находится в /usr/share/sbt/bin/sbt
, мы видим следующее:
declare -r sbt_opts_file=".sbtopts"
declare -r etc_sbt_opts_file="/etc/sbt/sbtopts"
declare -r dist_sbt_opts_file="${sbt_home}/conf/sbtopts"
...
# Here we pull in the default settings configuration.
[[ -f "$dist_sbt_opts_file" ]] && set -- $(loadConfigFile "$dist_sbt_opts_file") "$@"
# Here we pull in the global settings configuration.
[[ -f "$etc_sbt_opts_file" ]] && set -- $(loadConfigFile "$etc_sbt_opts_file") "$@"
# Pull in the project-level config file, if it exists.
[[ -f "$sbt_opts_file" ]] && set -- $(loadConfigFile "$sbt_opts_file") "$@"
# Pull in the project-level java config, if it exists.
[[ -f ".jvmopts" ]] && export JAVA_OPTS="$JAVA_OPTS $(loadConfigFile .jvmopts)"
run "$@"
Таким образом, мы можем поместить параметры конфигурацииin:
.jvmopts
.sbtopts
/etc/sbt/sbtopts
${sbt_home}/conf/sbtopts
Например, typelevel/cats
проект использует .jvmopts
для установки -Xmx3G
.В качестве альтернативы мы могли бы сделать
echo "-mem 2048" >> .sbtopts
Относительно переменных среды sbt -h
документы, которые
JAVA_OPTS environment variable, if unset uses "$java_opts"
.jvmopts if this file exists in the current directory, its contents
are appended to JAVA_OPTS
SBT_OPTS environment variable, if unset uses "$default_sbt_opts"
.sbtopts if this file exists in the current directory, its contents
are prepended to the runner args
Например,
export JAVA_OPTS=-Xmx2G
sbt
должны запускать sbt с 2 ГБ памяти.
Обратите внимание, что если вы запускаете тесты в разветвленной JVM , то вы можете увеличить память с помощью параметра javaOptions
в build.sbt
следующим образом:
Test / fork := true
Test / javaOptions ++= Seq("-Xmx4G")
VisualVM - полезный инструмент, позволяющий увидеть, какие настройки были переданы процессу JVM при экспериментировании с различными способами настройки SBT.