美文网首页
用spacemacs+sbt打造scala,spark开发ide

用spacemacs+sbt打造scala,spark开发ide

作者: brookpang | 来源:发表于2017-09-10 13:57 被阅读0次

    为什么用spacemacs?

    • spacemacs集成了很多语言,python,c++,scala等,可以在一个编辑器中实现多种语言的编写,没有编辑器切换之痛。
    • spacemacs 占用资源非常小,不像IntelliJ,eclipse 系列编辑器,占用内存很大,启动非常慢。
    • 全键盘操作,不用切换鼠标,达到沉浸式编程。

    效果

    代码自动提示

    环境

    系统:ubuntu16.04
    sbt:0.13.6(1.0版本测试有问题)
    scala:2.11.6
    spark library :1.6.1
    jdk: 1.8

    配置

    安装jdk和scala教程不在此赘述,网上随处可见,需要有JAVA_HOME环境变量。spacemacs的安装查看官网,文档写的比较清楚,不在此写具体的安装配置。

    1. 安装sbt
    sudo apt-get install sbt=0.13.6
    

    在命令行运行sbt 等待下载相应依赖包,完成后,会在~/.sbt 目录下生成0.13目录。

    mkdir plugins
    vim plugins.sbt
    

    添加如下代码,保存

    addSbtPlugin("org.ensime" % "sbt-ensime" % "latest.integration")
    
    addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "latest.integration")
    

    在系统~目录下执行sbt 命令等待下载及安装插件

    1. 配置项目
      在项目根目录创建build.sbt,添加相应的库依赖及项目定义。
      注意:中间需要留有代码中所示空行。
    name := "Hello"
    
    version := "1.0"
    
    libraryDependencies ++= Seq(
      "org.apache.spark" %% "spark-core" % "1.6.1" % "compile",
      "org.apache.spark" %% "spark-mllib" % "1.6.1" % "compile"
    )
    
    assemblyJarName in assembly := s"${name.value.replace(' ','-')}-${version.value}.jar"
    
    assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = false)
    
    

    执行sbt,等待依赖库下载完成。
    在sbt命令行中,执行ensimeConfig命令,生成ensime配置文件。
    编辑配置文件,修改.ensime文件,如果仅仅做scala开发,这块直接就可以用了,并不需要修改ensime配置文件,因为我经常用到spark,所以对其进行了修改添加了相应的library文件。

    :library-jars ("/home/brook/.sbt/boot/scala-2.10.4/lib/scala-library.jar"  "/home/brook/.ivy2/cache/org.apache.spark/spark-core_2.10/jars/spark-core_2.10-1.6.1.jar" "/home/brook/.ivy2/cache/org.apache.spark/spark-mllib_2.10/jars/spark-mllib_2.10-1.6.1.jar")
    

    此处默认只有scala-library 这个jar文件,后边两个是后加的。
    (注意:直接添加spark官方提供的library文件,由于太大,会导致cpu极高,所以我把spark用到的library 换成了sbt 自动下载的jar包,在用户主目录下.ivy2下都可以相应的找到。)
    以上配置完成,就可以愉快的编码了。

    3.运行

    我是直接在项目根目录执行一下命令 : sbt run
    spacemacs集成的sbt,不能执行完立即退出sbt,在代码出错的一些情况,例如由于bug sparkcontext不能退出,sbt 会一直尝试链接spark导致,导致cpu占用极高。所以直接执行sbt run ,有bug了sbt 也能停止尝试连接spark。

    相关文章

      网友评论

          本文标题:用spacemacs+sbt打造scala,spark开发ide

          本文链接:https://www.haomeiwen.com/subject/ajszjxtx.html