我知道如果我在定义一个依赖项时添加了withSources,sbt可以自动下载源jar文件.例如,
val specs ="org.scala-tools.testing"%"specs_2.8.1"%"1.6.6"%"test"withSources()
但是对于scala-library.jar和scala-compiler.jar,我不需要明确定义它们,我怎样才能让sbt为我下载它们的源代码?因此,在使用sbt-idea-plugin生成构思项目后,我不需要手动配置它.
Hei*_*ger 11
您必须更改引导属性.在近代的博客一个很好的说明decodified从马蒂亚斯:
" 如何使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文件中,前面带有'@'字符和双引号,作为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" \
"$@"
Run Code Online (Sandbox Code Playgroud)
完成这些步骤后,SBT应该很乐意
scala-...-sources.jar为您创建的任何新项目下载Scala编译器和标准库的文件.
要让SBT为现有项目执行此操作,您必须project/boot/scala-{version}在执行'sbt update' 之前手动删除目录(如果主jar已存在,SBT不会获取其他源工件).
一旦有了自定义sbt.boot.properties文件,还有其他方法可以将它提供给SBT启动器.
请参阅问题" 如何让sbt使用本地maven代理存储库(Nexus)? "
| 归档时间: |
|
| 查看次数: |
7776 次 |
| 最近记录: |