什么是sbtconfig.txt和sbtopts用于?

时间:2013-12-16 14:49:47

标签: sbt

在sbt的0.13版本中,我在sbt / conf目录中看到了这两个文件,如果我可以更改这些文件中的选项而不是启动器脚本,那将是非常好的。

我在sbtopts中更改了一些选项,它根本没有生效,sbtconfig.txt确实适用于某些选项但对于此选项-Dinput.encoding=iso-8859-1(我需要使用此选项以使用向上箭头键查看历史记录,否则显示凌乱的代码)只有在sbt.bat中添加它才会生效。

另一个问题是,我可以将这两个文件放在~/.sbt/的某处吗?我想将所有的sbt配置存储在一个地方。

我的操作系统是Windows 8.1并使用SBT 0.13。

1 个答案:

答案 0 :(得分:10)

sbtconfig.txt(仅限Windows)是一个列出JVM选项的配置文件,由sbt.bat使用。 sbtopts shell脚本使用sbt

最好阅读实际的脚本以确切了解它是如何使用的,但最终内容将最终出现在名为_JAVA_OPTS的变量中并传入:

"%_JAVACMD%" %_JAVA_OPTS% %SBT_OPTS% -cp "%SBT_HOME%sbt-launch.jar" xsbt.boot.Boot %*

所以你应该能够在那里添加-Dinput.encoding=Cp1252或其他任何东西。如果这不适合你,%JAVA_OPTS%可能是非空的(然后会忽略sbtconfig.txt),或者%SBT_OPTS%可能会将设置覆盖为其他内容吗?不确定。

您可以使用sbt console检查属性是否已设置:

scala> sys.props("input.encoding")
res0: String = null

scala> sys.props("file.encoding")
res1: String = UTF-8
  

另一个问题是,我可以将这两个文件放在~/.sbt/吗?

您应该可以修改sbt.bat来完成这项工作。事实上,在查看sbt shell脚本时,它会查看.sbtopts。您可以使用Cygwin查看是否有效。