文档介绍:使用SBT构建Scala应用
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进行依赖管理;
等等这些,都是SBT得以在Scala的世界里广受欢迎的印记。
SBT的发展可以分为两个阶段, 。
目前来讲, , ,。 ,,虽然笔者在迁移之前很抵触(),,并且也逐渐意识到, 虽然新的版本初看起来很复杂,但一旦了解了其设计和实现的哲学跟思路,就会明白这种设计可以更便捷的定义build文件。而且可选的build文件方式也同样运行采用Scala代码来定义,即并未放弃统一性的思想。
以上是SBT的简单介绍,如果读者已经急于开始我们的SBT之旅,那么让我们先从SBT的安装和配置开始吧!
SBT安装和配置
SBT的安装和配置可以采用两种方式,一种是所有平台都通用的安装配置方式,另一种是跟平台相关的安装和配置方式,下面我们分别对两种方式进行详细介绍。
所有平台通用的安装配置方式
所有平台通用的安装和配置方式只需要两步:
下载sbt boot launcher
,其下载地址为
http://typesafe./typesafe/ivy-.scala-sbt/sbt-launch/-;
创建sbt启动脚本(启动脚本是平台相关的)
如果是Linux/Unit系统,创建名称为sbt的脚本,并赋予其执行权限,并将其加到PATH路径中; sbt脚本内容类似于 java -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -jar `dirname $0`/sbt- "$@", 可以根据情况调整合适的java进程启动参数;
如果是Windows系统,,同样将其添加到PATH路径中。脚本内容类似于set SCRIPT_DIR=%~dp0 \n java -Xmx512M -jar "%SCRIPT_DIR%sbt-" %*
以上两步即可完成sbt的安装和配置。
平台相关的安装配置方式
笔者使用的是Mac系统,安装sbt只需要执行brew install sbt即可(因为我已经安装有homebrew这个包管理器),使用macport同样可以很简单的安装sbt - sudo port install sbt;
如果读者使用的是Linux系统,那么这些系统通常都会有相应的包管理器可用,比如yum或者apt,安装和配置sbt也同样轻松,只要简单的运行yum install sbt 或者 apt-get install sbt命令就能搞定(当然,通常需要先将有sbt的repository添加到包管理器的列表中);
Windows的用户也可以偷懒,只要下载MSI文件直接安装,MSI文件下载地址为http://scalasbt./scalasbt/sbt-native-/scala-sbt/sbt/。
以上方式基本上囊括三大主流操作系统特定的安装和配置方式,其它特殊情况读者可以酌情处理^_^
SBT基础篇
既然我们已经安装和配置好了SBT,那就让我们先尝试构建一个简单的Scala项目吧!
Hello, SBT
在SBT的眼里,