sbt下载新版本的scala编译器和scala库在这个位置的每个sbt项目:。/项目/boot/scala-2.8.1/lib/scala-library.jar
。/项目/boot/scala-2.8.1/lib/scala-compiler.jar
我如何使它从$SCALA_HOME指向的位置拾取编译器和库?
而且,我很惊讶这不是一个常见的要求。Scala开发人员是否更喜欢为每个项目使用单独的编译器和库副本?
我发现同样的请求没有得到回答:http://groups.google.com/group/simple-build-tool/browse_thread/thread/9e2c7bc34253ad0f?pli=1
提前感谢您的帮助。
免责声明,我自己不使用这个,但我很好奇这是否可能。
基于使用本地scala实例,我定义了以下项目:
import sbt._
import java.io.File
class Test(info: ProjectInfo) extends DefaultProject(info) {
override def localScala =
defineScala("2.8.1-local", new File(System.getenv("SCALA_HOME"))) :: Nil
}
则在project/build/build.properties
中:
build.scala.versions=2.8.1-local
然后我可以看到控制台目标工作得很好,这表明它也可以用于编译和运行。
虽然我理解这种担忧,但我认为使用单独的副本是一件好事
- 可以安装多个scala版本,并在多个项目中使用不同的scala版本。这并不罕见(我目前有项目)使用2.8.0,其他使用2.8.1,其他使用2.9.0.RC1…)——因此:你会在每次切换到另一个项目时编辑$SCALA_HOME吗?不可行的
- sbt将它们舒适地存储在本地ivy2缓存中,因此获取版本是很困难的非常快的
- 如果你克隆了别人的项目,你可以只做sbt update和wooop scala is不管你是否已经有了那个特定的版本
- project/boot通常不会检入到任何存储库中,所以您的项目文件夹只是在本地硬盘上更大。考虑到你穿了这么多衣服对于开发人员计算机,我想说库和编译器的额外大小项目是花生,标准硬盘是几百GB
你有没有试着在google群组里再问一遍这个问题?