【问题标题】:How to build/test Scala without IDE dependence?如何在不依赖 IDE 的情况下构建/测试 Scala?
【发布时间】:2010-09-16 07:00:02
【问题描述】:

我现在正在学习 Scala 并且非常喜欢它;我希望用它来开始未来的项目,而不是 Java。我不太喜欢的是(相对)较差的 IDE 支持。我发现带有 Scala 插件(包括夜间构建)的 IDEA 和 Eclipse 有点不可靠或难以使用——我想要一些我可以一直依赖的东西。例如。昨天我根本无法重新安装 eclipse+plugin 来运行我的测试,甚至无法打开编辑器窗口!

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

【问题讨论】:

    标签: maven-2 scala ant build buildr


    【解决方案1】:

    我在 Scala 中使用过 Maven 和 sbt,发现它们都非常易于使用。

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • SBT 和 IDEA 的集成比以往任何时候都好。太棒了!
      【解决方案3】:

      编辑:Uuuups。对不起。实际上,我误读了您的问题,仅对 IDE 发表了评论。在构建项目时,我使用 make ;) 因为它很好地集成到了 Vim

      虽然我不想在没有 IDE 的情况下做任何 Java 项目,但我目前正在 Vim 做一个相当大的项目。我知道这是一种相当“石器时代的方法”,但效果很好。

      一方面,我厌倦了所有 IDE 的错误/缓慢/缺乏 Scala 支持。我尝试了 Scala、netbeans 和 IDEA,发现使用它们(在 Scala 中)相当痛苦。

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

      我无法通过语言标签进行代码折叠,但如果您遵守 Scala 的缩进约定,通过缩进进行折叠就可以了。

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

      【讨论】:

      • 很高兴听到更“硬核”的方法:) 让我担心的是重构。我通常不会在第一轮就把事情做好,并且比我应该更多地依赖重构。
      • 按照这些思路,我听说 emacs + sbt + ENSIME 是一个很好的组合(并且 ENSIME 会进行重构!)。有关此 Scala 用户线程的更多信息:scala-programming-language.1934581.n4.nabble.com/…
      • @Pengin:就像上面写的一样,由于缺乏自动完成,我倾向于编写更松散耦合的类系统。所以通常重构需要我大约 5 分钟或更短的时间
      • @Agl - vanilla vim 没有石器时代的东西。许多 Python 和 C++ 开发人员(包括我自己)实际上完全可以走这条路。我越来越多地看到 JS UI 人员也使用 vanilla vim 而不是 Sublime。我认为 JVM 语言在很大程度上发现自己在 IDE 中,因为它们为您处理项目的所有类路径配置的方式。
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        只需加上我的两分钱。我认为您也应该尝试一下 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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-11-06
          • 1970-01-01
          • 2017-07-28
          • 1970-01-01
          • 1970-01-01
          • 2014-04-19
          • 2019-04-19
          • 1970-01-01
          相关资源
          最近更新 更多