gat*_*ado 50 eclipse scala build
我在这里看到过关于IDE的问题 - 哪个是Scala开发的最佳IDE?而什么是模具的斯卡拉现状如何?,但我在IDE方面有过各种各样的经历.现在,我正在使用带有自动工作区刷新选项的Eclipse IDE,以及KDE 4的Kate作为我的文本编辑器.以下是我想解决的一些问题:
-Xprint:jvm给编译器(打印出降低的代码)也是很好的.fsc.我看着Ant和Maven,虽然还没有使用过(我还需要花时间解决#3和#4).在我花时间让一个次优的构建系统工作之前,我想看看是否有人有其他建议.提前致谢!
更新 - 我现在正在使用Maven,将项目作为编译器插件传递给它.看起来足够快; 我不确定Maven的缓存是什么样的jar.可以使用Scala 2.8.0的当前存储库[ link ].原型非常酷,跨平台支持似乎非常好.但是,关于编译问题,我不确定fsc是否实际修复,或者我的项目是否足够稳定(例如类名不会改变) - 手动运行并不会让我感到烦恼.如果您想查看示例,请随意浏览我正在使用的[ github ] 的pom.xml文件.
更新2 - 从我看过的基准测试中,Daniel Spiewak是正确的,构建器比Maven更快(并且,如果正在进行增量更改,Maven的10秒延迟会变得烦人),所以如果可以制作兼容的构建文件,那么它可能是值得...
Dan*_*wak 34
使用当前的scalac 非常难以管理第2点和第4点.问题是Scala的编译器对于构建文件有点愚蠢.基本上,它会构建您提供的任何内容,无论该文件是否真的需要构建.Scala 2.8.0在这方面会有一些巨大的改进,但在那之前...... Eclipse SDT实际上有一些非常精细(和非常hackish)的代码用于进行变更检测和依赖性跟踪.总的来说,它做得不错,但正如你所看到的,有皱纹.Eclipse SDT 2.8.0将依赖于对scalac本身的上述改进.
因此,构建仅修改过的文件几乎是不可能的.除了SDT之外,我所知道的唯一一个甚至尝试这个的工具是SBT(简单构建工具).它使用编译器插件在编译时跟踪文件,并查询编译器本身计算的依赖图.在实践中,这比重新编译世界的方法产生了大约50%的改进.再次,这是一个克服2.8.0之前的scalac缺陷的黑客.
好消息是,即使不担心变化检测,合理快速的编译仍然是可以实现的.FSC使用Eclipse SDT用来实现快速增量编译的相同技术(噢,听起来像是"Charlie Eppes").简而言之,它非常活泼.
就个人而言,我使用的是Apache Buildr.它的配置比Maven或SBT更清洁,其启动时间少了几个数量级(在MRI下运行时).它与FSC集成,并尝试自己进行一些基本的变化检测(相当原始).它还对主要的Scala测试框架(ScalaTest,ScalaCheck和Specs)提供自动魔术支持,并支持使用Java源和IntelliJ和Eclipse的IDE元生成联合编译.哦,它支持所有Maven的功能(依赖解析等),然后一些.我甚至正在开发一个扩展,它允许与JavaRebel集成的交互式shell支持并支持几个shell提供程序(Scala,JIRB,Clojure REPL等).它尚未为SVN做好准备,但是一旦它准备就绪,我会做出承诺(可能及时为1.3.5).
正如您所看到的,我非常坚定地认为Buildr是最好的Scala构建工具.它的文档在Scala方面有点不合理,但那是因为一切都是如此简单,以至于很难在不感到啰嗦的情况下进行记录.您可以随时查看我的一个GitHub存储库以获取示例.祝好运!
您是否看过Intellij IDEA及其Scala集成?Intellij在Java开发人员中拥有忠诚(狂热?)的追随者,因此您可能会发现这适合您的需求.
| 归档时间: |
|
| 查看次数: |
20531 次 |
| 最近记录: |