您必须更改引导属性。在最近从Mathias解码的博客中有一个很好的描述:
“如何使 SBT 下载 scala 库源”(从@hseeberger关键起点开始)
这是相关部分(以防链接过时)
首先,忘记尝试在 SBT 项目定义中找到一些“隐藏”设置来启用 Scala 库源下载!它不存在(至少在 SBT 版本 0.7.x 中不存在)。
相反,为了使 SBT 屈服,您需要做以下两件事:
- 为您的 SBT 启动器创建一个替代配置文件。
- 让 SBT 启动器使用它。
这些是详细的步骤:
- 找到你的
sbt-launcher-0.7.x.jar
文件。
由于我在 OS/X 上并通过 Homebrew 使用 SBT,因此我的生活在/usr/local/Cellar/sbt/0.7.5.RC0/libexec/sbt-launch-0.7.5.RC0.jar
.
sbt.boot.properties
从sbt
启动器 jar 的子目录中提取
- 启动您最喜欢的编辑器并将第 3 行更改为分类器:(
sources
取消注释该行)
- 找到您在 SBT 设置期间创建的 sbt 脚本文件(例如
~/bin/sbt
,或者,当使用 Homebrew 时,/usr/local/Cellar/sbt/0.7.x/bin/sbt
)
- 将路径添加到调整后的
sbt.boot.properties
文件,前面带有“<code>@”字符和双引号,作为 java 调用的倒数第二个参数。
这是我的 sbt 脚本文件的样子:
#!/bin/sh
java -Xmx768M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m \
-jar /usr/local/Cellar/sbt/0.7.5.RC0/libexec/sbt-launch-0.7.5.RC0.jar \
"@/usr/local/Cellar/sbt/0.7.5.RC0/libexec/sbt.boot.properties" \
"$@"
一旦你完成了这些步骤,SBT 应该很乐意scala-...-sources.jar
为你创建的任何新项目下载 Scala 编译器和标准库的文件。
要让 SBT 为现有项目执行此操作,您必须project/boot/scala-{version}
在执行“<code>sbt update”之前手动删除目录(如果主 jar 已经存在,SBT 不会获取其他源工件)。
有了自定义sbt.boot.properties
文件后,还有其他方法可以将其提供给 SBT 启动器。
请参阅 SO 问题“我如何让 sbt 使用本地 maven 代理存储库 (Nexus)? ”