通过环境变量更改 sbt 启动和常春藤目录



可以通过环境变量设置.sbt和.ivy2目录吗?

当我像这样运行 sbt 时,我可以覆盖这些参数:

sbt -Dsbt.boot.directory=/tmp/.sbt/boot -Dsbt.ivy.home=/tmp/.ivy2 version

我认为这会起作用:

export sbt.boot.directory=/tmp/.sbt/boot
export sbt.ivy.home=/tmp/.ivy/home
sbt version

但它不起作用...

第二个问题:如何绕过 SBT 配置启动器?(http://www.scala-sbt.org/0.13/docs/Launcher-Configuration.html) 运行 SBT 时?

您可以使用

SBT 的运行时参数设置JAVA_OPTSSBT_OPTS环境变量。不同之处在于,JAVA_OPTS也会影响其他基于 Java 的应用程序,而SBT_OPTS只影响 SBT。例如:

export SBT_OPTS="-Dsbt.ivy.home=/tmp/.ivy/home -Dsbt.boot.directory=/tmp/.sbt/boot"

从命令行运行 SBT 时,它将使用这些参数。但是,如果您从IntelliJ IDEA启动它,它将不会使用它们。IDEA直接启动SBT JAR,SBT的虚拟机参数必须在每个项目的IDEA sbt设置中配置。

对于第二个问题,不清楚你所说的旁路是什么意思。可以直接运行 SBT jar 而不是 sbt 启动器脚本。例如:

java -server -Xmx1536M -Dsbt.ivy.home=/tmp/.ivy/home -jar /<install-path>/sbt/bin/sbt-launch.jar

最新更新