如何在没有IDE依赖的情况下构建/测试Scala?

时间:2010-09-16 07:00:03

标签: maven-2 scala ant build buildr

我现在很好地学习Scala并非常享受它;我希望在其中开始未来的项目,而不是Java。我更少享受的是(相对)糟糕的IDE支持。我发现IDEA和Eclipse都带有Scala插件(包括夜间版本)有点不可靠或难以使用 - 我想要一些我总能依赖的东西。例如。昨天我无法全新安装eclipse +插件来运行我的测试,甚至打开一个编辑器窗口!

我正在考虑在Eclipse / IDEA之间跳转,具体取决于最适合手头的任务,更重要的是减少我对构建和运行测试的IDE的依赖(ScalaTest)。这对我来说非常重要,因为我在Eclipse中长大了Java;让Eclipse SVN使用GIT最初是一件大事。鉴于我只有时间学习一个工具,它应该是Ant,Maven,buildr,sbt,....其他人如何工作?

5 个答案:

答案 0 :(得分:10)

我已经使用了Maven和sbt与Scala,发现它们都很容易使用。

然而,sbt感觉更接近Scala,因为它的构建文件是用Scala编写的(而不是Maven中的XML)和sbt功能构建REPL,有连续的编译和测试等。

所以我建议你将sbt用于一个简单的Scala项目。

但是如果你想创建像WAR,EJB等标准Java项目,我觉得Maven对它们有更好的支持。

Maven还有一个庞大的插件生态系统,可以让你做几乎所有事情,代码覆盖,报告,代码标准检查,文档生成等等。

答案 1 :(得分:3)

我在IDEA使用SBT。虽然我没有尝试过,但我知道对SBT和IDEA的整合有一些支持。

无论如何,SBT是所有Scala建筑和测试需求的重要基础。

答案 2 :(得分:1)

编辑:Uuuups。抱歉。实际上我误解了你的问题,只对IDE进行了评论。在构建项目时,我使用make;)因为它很好地集成到了Vim

虽然我不想在没有IDE的情况下进行任何Java项目,但我目前正在Vim进行一个相当大的项目。我知道这是一个非常“石器时代的方法”,但它运作得很好。

一方面,我对所有IDE的错误/缓慢/缺乏Scala支持感到厌倦。我尝试过Scala,netbeans和IDEA,并发现与他们合作(在Scala中)相当痛苦。

另一方面,Scala有一些属性可以帮助处理一个简单的编辑器:你可以在一个文件中有更多的类,所以我通常在一个文件中定义一个整个包,这个文件也不会变得太大,因为Scala类通常非常(甚至非常)小。所以我通常一次只打开两个或三个文件,因此不需要包/文件管理。

我无法通过语言标签进行代码折叠工作,但如果您坚持使用Scala的缩进约定,则通过缩进折叠可以正常工作。

一件不起作用的是自动完成。但话说回来,这让我写出更松散耦合的对象;)

答案 3 :(得分:1)

Buildr支持Scala和Java作为一流语言,支持ScalaCheck和ScalaSpecs,当然也有足够的插件使其成为Maven的有力竞争者。

答案 4 :(得分:0)

加我的两分钱。我想你也应该尝试Netbeans。它应该是三个主要参与者(Eclipse,Idea和Netbeans)中最受Scala欢迎的。

我使用Netbeans 6.8和scala-2.8.0.r22602-b20100720020114获得了很多乐趣

可以公平地说,如果不是Netbeans插件,我现在不会编写Scala编程。我花了很多时间试图让它与其他人一起顺利工作,但没有取得多大成功。

我使用Netbeans进行开发,使用Ant进行独立构建。有关为Scala配置Ant的信息: http://scriptlandia.blogspot.com/2007/04/how-to-compile-and-run-scala-program.html