分享

配置Spark源码阅读环境

丫丫 2015-7-19 17:45:48 发表于 安装配置 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 14544
本帖最后由 丫丫 于 2015-7-19 17:49 编辑

问题导读

1.SBT有哪些特性?
2.SBT构建的工程结构是什么样子的?
3.SBT有哪些命令?
4.如何导入Spark工程?
5.如何安装InteliJ IDEA的编辑器主题配色?






Scala构建工具(SBT)的使用SBT介绍
SBT是Simple Build Tool的简称,如果读者使用过Maven,那么可以简单将SBT看做是Scala世界的Maven,虽然二者各有优劣,但完成的工作基本是类似的。
虽然Maven同样可以管理Scala项目的依赖并进行构建,但SBT的某些特性却让人如此着迷,比如:
  • 使用Scala作为DSL来定义build文件(one language rules them all);
  • 通过触发执行(trigger execution)特性支持持续的编译与测试;
  • 增量编译:SBT的增量编译支持因为如此优秀,已经剥离为Zinc,可被Eclipse, Maven,Gradle等使用
  • 可以混合构建Java和Scala项目;
  • 并行的任务执行;
  • 可以重用Maven或者ivy的repository进行依赖管理等等
工程结构
  • project – 工程定义文件
    project/build/.scala – 主要的工程定义文件
    project/build.properties – 工程,sbt以及scala版本定义
  • src/main – 你的应用代码放在这里,不同的子目录名称表示不同的编程语言(例如,src/main/scala,src/main/java)
    src/main/resources – 你想添加到jar包里的静态文件(例如日志配置文件)
  • lib_managed – 你的工程所依赖的jar文件。会在sbt更新的时候添加到该目录
  • target – 最终生成的文件存放的目录(例如,生成的thrift代码,class文件,jar文件)

目录结构
sbt 和 Maven 的默认的源文件的目录结构是一样的(所有的路径都是相对于基础目录的):
src/  
   main/   
       resources/    目录存放相应的资源文件      
        <files to include in main jar here>   
       scala/    目录存放Scala源代码文件      
          <main Scala sources>   
       java/    目录存放Java源代码文件        
          <main Java sources>  
   test/   
       resources    目录存放测试起见使用到的资源文件      
          <files to include in test jar here>   
   scala/    目录存放scala语言书写的测试代码文件      
          <test Scala sources>   
    java/    目录存放Java语言书写的测试代码文件      
          <test Java sources>

sbt 完全按照约定工作。sbt 将会自动找到以下内容:
项目根目录下的源文件
src/main/scala 或 src/main/java 中的源文件
src/test/scala 或 src/test/java 中的测试文件
src/main/resources 或 src/test/resources 中的数据文件
lib 中的 jar 文件

SBT命令
  • 交互模式
    在你的项目目录下运行 sbt 不跟任何参数:
    $ sbt
    执行 sbt 不跟任何命令行参数将会进入交互模式。交互模式有一个命令行(含有 tab 自动补全功能和历史记录)。
    例如,在 sbt 命令行里输入 compile:
    > compile
    再次 compile,只需要按向上的方向键,然后回车。 输入 run 来启动程序。 输入 exit 或者 Ctrl+D (Unix)或者 Ctrl+Z (Windows)可以退出交互模式。
  • 批处理模式
    你也可以用批处理模式来运行 sbt,可以以空格为分隔符指定参数。对于接受参数的 sbt 命令,将命令和参数用引号引起来一起传给 sbt。例如:
    $ sbt clean compile "testOnly TestA TestB"
    在这个例子中,testOnly 有两个参数 TestA 和 TestB。这个命令会按顺序执行(clean, compile, 然后 testOnly)。
  • 持续构建和测试
    为了加快编辑-编译-测试循环,你可以让 sbt 在你保存源文件时自动重新编译或者跑测试。 在命令前面加上前缀 ~ 后,每当有一个或多个源文件发生变化时就会自动运行该命令。例如,在交互模式下尝试:
    > ~ compile
    按回车键停止监视变化。 你可以在交互模式或者批处理模式下使用 ~ 前缀。 参见 触发执行 获取详细信息。
  • 常用命令
    下面是一些非常常用的的 sbt 命令。更加详细的列表请参见 命令行参考。

clean 删除所有生成的文件 (在 target 目录下)。
compile 编译源文件(在 src/main/scala 和 src/main/java 目录下)。
test 编译和运行所有测试。
console 进入到一个包含所有编译的文件和所有依赖的 classpath 的 Scala 解析器。输入 :quit, Ctrl+D (Unix),或者 Ctrl+Z (Windows) 返回到 sbt。
run <参数> 在和 sbt 所处的同一个虚拟机上执行项目的 main class。
package 将 src/main/resources 下的文件和 src/main/scala 以及 src/main/java 中编译出来的 class 文件打包成一个 jar 文件。
help <命令> 显示指定的命令的详细帮助信息。如果没有指定命令,会显示所有命令的简介。
reload 重新加载构建定义(build.sbt, project/\.scala, project/*.sbt 这些文件中定义的内容)。在修改了构建定义文件之后需要重新加载。

导入Spark工程
首先下载Spark源码并解压到本地。
打开IDEA,在菜单栏中选择File下的New,选择Project from Existing Sources,找到解压后的Spark工程文件夹。
选择Import project from external model中的SBT project
下一步选择Project SDK为JDK,最好勾上Use auto-import,然后点击完成。这时,IDEA会自动下载安装SBT所需的各种包,没有装Git可能会报错。
因为Spark是一个比较大的工程,所需的包也很多,这个过程也会特别慢,请耐心等待。
导入完成后,自动打开工程,要等一段时间,等待sbt对这个工程进行编译。

安装IntelliJ IDEA的编辑器主题配色
可以从IDEA的主题网站下载想要的主题,格式jar文件。
在IDEA的File—>Import Settings—>选择jar包,完成导入。
最后在Settings—>Editor—>Colors & Fonts中选择就可以了。
转载请注明作者Jason Ding及其出处
GitCafe博客主页(http://jasonding1354.gitcafe.io/)
Github博客主页(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)



已有(3)人评论

跳转到指定楼层
hery 发表于 2015-7-20 10:17:19
介绍的不错。。
回复

使用道具 举报

燃烧骄傲 发表于 2015-7-20 17:30:09
感谢楼主分享!
回复

使用道具 举报

tang 发表于 2015-11-27 21:26:39
先收藏下,mark
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条