Scala开发环境选型: Sublime + sbt + Ensime
来源:互联网 发布:淘宝代理如何发货 编辑:程序博客网 时间:2024/05/21 16:57
今天在Scala开发环境的选择上纠结了比较久,尝试了Scala IDE,IntelliJ IDEA,也尝试了maven + scala-maven-plugin,最终选择投靠sbt,并且选择Sublime作为编辑器,加上sublime-ensime这个插件。
Scala IDE & IntelliJ IDEA
Scala IDE和Eclipse长得差不多,亲切度较高,且加上Maven for Scala插件之后,可以直接创建Scala的maven项目。我下载来的3.0+版本的scala IDE可以直接创建scala maven项目,并且会生成如下项目结构。但是Scala IDE不具备代码提示功能,高亮的字段不是很全面,且maven相比sbt还是逊色一些。还有一个问题是ScalaIDE不是很完善,有一些小问题。我使用它来看Spark项目的源码,并不选择其作为开发环境。
IntelliJ IDEA的话可能是很多Scala开发者的首选。对我来说,不太熟悉IntelliJ IDEA,刚起步的话还是考虑能快速熟悉和起步,IntelliJ IDEA好像也是支持sbt的。以后我可能会转战到IntelliJ IDEA的平台。
Sublime + sbt + Ensime
sublime还算是一个比较简单又实用的编辑器,很多人会拿它来写脚本语言,适合Win和Mac环境。
sbt的话就不用说了,应该是比maven强大些,而且既然写scala的话,理应尽量去投靠sbt。它有一点比maven方便的地方,就是在sbt console里面,敲 ~complie之后,可以即时编译,如果你有两个屏幕的话,可以在另一块屏幕上看到刚刚敲入并保存的代码编译有没有问题。sbt入门的话可以参看github上的一份文档。sbt的依赖和管理更简洁,又同maven有相同之处,所以也很好上手。
Ensime是github上的一个项目,为Sublime Text 2(Sublime Text 3无法使用,因为两个内置python版本不同,ensime有些python文件需要执行)做的插件,是Sublime下的外部package,我使用之后提炼出它的几点功能(即为Sublime补充的一些内容):
- 自己写的类可以通过 ctrl + 鼠标点击 跳转
- 没有引入或依赖的包,类,会提示报错
- ctrl+alt+b 可以build整个工程,相当于sbt下面敲compile也会build工程一样
- alt + i 可以给指定的类显示可以选择导入的目标包,并自动添加import
[ { "keys": ["f9"], "command": "ensime_toggle_breakpoint" }, { "keys": ["ctrl+shift+f9"], "command": "ensime_clear_breakpoints" }, { "keys": ["ctrl+f5"], "command": "ensime_startup" }, { "keys": ["ctrl+shift+f5"], "command": "ensime_shutdown" }, { "keys": ["f5"], "command": "ensime_smart_run_debugger" }, { "keys": ["shift+f5"], "command": "ensime_stop_debugger" }, { "keys": ["f11"], "command": "ensime_step_into" }, { "keys": ["f10"], "command": "ensime_step_over" }, { "keys": ["alt+i"], "command": "ensime_add_import" }, { "keys": ["ctrl+shift+b"], "command": "ensime_build" }]更多Ensime的安装,用法和介绍可以参考github主页,安装和使用很简单。
sbt spark0.8 依赖的一个问题
仅仅在build.sbt下增加
libraryDependencies ++= Seq( "org.apache.spark" % "spark-core_2.9.3" % "0.8.0-incubating")然后build的话,会出错,提示
unresolved dependency: com.typesafe.akka#akka-actor;2.0.5: not found不仅仅是akka-actor,事实上akka-xx的2.0.5都会not found。奇怪的是我在maven环境下,pom.xml里同样是
<dependency> <!-- Spark dependency --> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.9.3</artifactId> <version>0.8.0-incubating</version> </dependency>是可以成功导入spark-0.8所有需要的依赖的。因此,我的解决方法是让sbt去使用maven的本地仓库,使用一次后sbt自己的本地仓库里就有akka的相关2.0.5的包了,下面给出我的完整build.sbt内容,
name := "hi-scala"organization := "com.baidu.smartq"version := "0.0.1-SNAPSHOT"scalaVersion := "2.9.3"resolvers ++= Seq( "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/", "Local Maven Repo" at "C://Users/zhangbaofeng/.m2/repository")libraryDependencies ++= Seq( "org.mongodb" %% "casbah" % "2.6.3", "org.slf4j" % "slf4j-api" % "1.6.4", "org.slf4j" % "slf4j-simple" % "1.6.4", "org.apache.spark" % "spark-core_2.9.3" % "0.8.0-incubating")ivyXML :=<dependency org="org.eclipse.jetty.orbit" name="javax.servlet" rev="2.5.0.v201103041518"> <artifact name="javax.servlet" type="orbit" ext="jar"/></dependency>最后的ivyXML部分也是为了一个包而增加上去的,它的报错是下面这个包引起的
org.eclipse.jetty.orbit#javax.servlet;2.5.0.v201103041518!javax.servlet.orbit添加近ivyXML这段之后就okay了。该问题参考spark-use mailing list里的一个问题。
总结
本文介绍了我的Scala开发环境选型,简单对比了取舍的原因。然后针对sbt下spark-0.8包部分包无法加载问题给出了解决方案,并帖出了完整可用的build.sbt内容。希望可以给同样是起步学习Scala的同学一些帮助。
(全文完)
- Scala开发环境选型: Sublime + sbt + Ensime
- spark开发环境搭建intellij+Scala+sbt
- 构建scala+IDEA+sbt开发环境
- Scala开发环境选型(2): vim + NERDTree + scala-dist + tmux
- windows下使用sbt搭建Scala开发环境
- 使用sbt搭建Scala开发环境的总结
- 配置IntelliJ IDEA 13的SBT和Scala开发环境
- 配置IntelliJ IDEA 13的SBT和Scala开发环境
- windows下使用sbt搭建Scala开发环境
- 配置IntelliJ IDEA 13的SBT和Scala开发环境
- 配置IntelliJ IDEA 13的SBT和Scala开发环境
- scala eclipse sbt 应用程序开发
- scala eclipse sbt 应用程序开发
- SBT构建开发环境
- idea + scala + maven/sbt环境配置
- Scala sbt akka Eclipse 环境的配置
- Win7下安装和配置sbt,Scala,Eclipse,Spark开发环境
- sublime text2 搭建scala开发环境(windows)
- GIS与LBS的简单自结
- JavaSE基础学习笔记-提高篇-JDK1.5新特性
- AFNetwork 详解
- 逆向输出10个数
- stirng 读取json文件 jsonkit 使用
- Scala开发环境选型: Sublime + sbt + Ensime
- 静态库和动态库的优缺点
- ExecutorService 的理解与使用
- Mac下显示隐藏文件 以及修改 hosts文件内容
- 怎么修改tomcat默认访问首页
- 杨家银行
- 另外一个Mathematica张量计算工具Ricci
- ubuntu 12.10中MyEclipse 10.6+下载+安装+破解
- 拉格朗日插值-红外校正