1
34
第2点和第4点是 极其 很难用当前的scalac进行管理。问题是scala的编译器对于构建文件有点笨。基本上,无论您是否真的需要构建该文件,它都将构建您提供的任何内容。scala 2.8.0在这方面会有很大的改进,但是直到那时…EclipseSDT实际上有一些非常复杂(也非常黑客)的代码用于进行变更检测和依赖性跟踪。总的来说,这是一个不错的工作,但正如你所看到的,有皱纹。EclipseSDT 2.8.0将依赖于上述对scalac本身的改进。 因此,只构建修改过的文件几乎是不可能的。除了SDT之外,我所知道的唯一一个工具就是SBT。( Simple Build Tool )。它使用编译器插件在编译文件时跟踪文件,并查询由编译器本身计算的依赖关系图。在实践中,与重新编译World方法相比,这将产生大约50%的改进。再一次,这是一个破解2.8.0之前的scalac中的缺陷的方法。 好消息是,即使不担心变化检测,合理快速的编译仍然可以实现。FSC使用EclipseSDT用于实现快速增量编译的相同技术(ooh,听起来像“charlie eppes”)。简而言之,这是相当快的。 我个人用 Apache Buildr .它的配置比Maven或SBT都要干净得多,而且它的启动时间要小很多(在MRI下运行时)。它与FSC集成,并尝试自己进行一些基本的变更检测(相当原始)。它还对主要Scala测试框架(ScalaTest、ScalaCheck和SCOS)具有自动的魔法支持,以及支持与Java源和IDE元生成的联合编译,以用于ITELLIJ和Eclipse。哦,它支持Maven的所有特性(依赖解析等),还有一些。我甚至正在开发一个扩展,它允许与JavaRebel集成的交互式shell支持,并支持几个shell提供者(scala、jirb、clojure repl等)。它还没有为SVN准备好,但是一旦它准备好了,我将提交(可能在1.3.5的时候)。 如您所见,我非常坚定地认为builder是目前最好的scala构建工具。它的文档在scala中有点零乱,但这是因为所有的东西都是如此简单,以至于很难在文档中不感到冗长。您可以随时查看 my GitHub repositories 举个例子。祝你好运! |
2
6
你看过Intellij的想法吗? Scala integration ?intellij有一个忠诚的(狂热的?)在Java开发人员中,您可能会发现这适合于您的需求。 |
3
4
我对Eclipse上的scala插件也很失望,我可以在列表中添加更多的问题:
我很高兴听到builder听起来是个更好的选择(无论如何,在build方面),我会试试的-谢谢! |
4
4
出于完整性的原因,我不得不说 Pants --Twitter中使用的构建工具(早期scala采用者之一) 它的主要区别在于,它不仅适用于scala(顺便说一下,它是用python编写的),而且是在 google build system . 它不像SBT那么臃肿,所以对于新生来说,它更简单,但我从来没有听说过Twitter和Foursquare以外的裤子使用。 如果你害怕SBT,也许是另一个不那么流行的构建工具, ABT 可以是一个 可供替代的 为你? |
5
3
我沿着同一条路走,我在这里: -经过初步调查后,我把凯特送走了。我喜欢把它用在大多数事情上,但是当涉及到定义制表符完成的事情时,我发现它非常缺乏。我建议您改为研究gedit,它对于scala开发更为健壮。 -以gedit作为我的编辑器,我使用sbt并发现它是一个很好的构建工具。我可以将它置于“测试”模式,当任何代码更改时,它会重新编译相关文件并运行我的测试套件。这是一种非常有效的工作方式。 我还没看建筑商。我想说我会的,但老实说,有了SBT,我真的不需要考虑另一个构建工具。 |
6
3
如果你用emacs,我想 Ensime 是一个很好的IDE。我认为,在编写时,AcXME是唯一的IDE,它将给斯卡拉和Java对象的快速准确的自动完成,包括隐式转换。 有使用速度栏的代码浏览支持,使用优秀的Yasnipet的代码模板,以及使用自动完成的代码完成菜单。这些都是非常现代,积极维护的emacs包。还有现成的对Maven和SBT的增量构建支持。 其中还有很多东西,比如交互式调试、重构和低级过程中的scala解释器。你想在一个现代的侧面为斯卡拉所有的东西已经在恩西姆。强烈推荐用于Emacsens。 |
7
2
如果您想使用Eclipse,但是使用sbt构建项目,并且仍然能够进行调试,请看下面的文章: zikaprog.wordpress.com/2010/04/19/scala-eclipse-sbt-and-debugging/ 它也可以应用于建筑商以外的SBT。 |
8
1
MavenScala插件的最新版本支持锌/钉枪,以加快启动时间和更快的增量构建。参见 Zinc and Incremental Compilation . |
Mr.H. · 如何在外部文件中定义函数? 6 年前 |
Jon Goe · 实现SeekArc时生成同步失败 6 年前 |
Farzad J · VSTS中PowerShell脚本的打包管理器 6 年前 |
vladfau · Maven没有在多模型项目中构建兄弟依赖关系 6 年前 |