SBT和Lightbend Activator的使用
from http://blog.csdn.net/u011152627/article/details/52043883
构建工具 sbt
sbt全称Simple Build Tool,是Scala项目的标准构建工具,类似于Java下的Maven和Gradle。
安装与配置sbt
主流Linux发行版的仓库中,一般都包含sbt,可以使用发行版的包管理器安装sbt,以ArchLinux为例:
# pacman -S sbt
在Windows环境下,可以从官网http://www.scala-sbt.org/download.html中下载,下载完成之后解压并将目录下的bin目录加入PATH中。
如果已经安装了Activator,则无需再安装sbt,Activator中已经包含了sbt。
启动与使用sbt
在任意目录下输入sbt指令,即可进入sbt的交互式shell,sbt工具会将当前路径作为sbt项目的根目录。
能看到以下输出:
[info] Set current project to sbt (in build file:/home/dainslef/Downloads/SBT/)
>
若路径中包含Scala源码,则在交互式shell中输入run指令则会尝试编译执行源码。
旧版的sbt中(sbt 0.7.x之前),在sbt交互shell中输入run指令会在路径下创建完整的sbt项目路径结构,但新版的sbt已不提供此功能(但可以使用Activator创建完整的sbt项目)。
使用Activator则操作类似,在目录下输入activator shell指令即可进入sbt交互式shell。 Activator内置了多种项目模版,使用如下指令即可创建一个具有完整路径的sbt项目:
$ activator new [项目名称] minimal-scala
sbt的常见指令有:
compile编译项目update更新依赖test运行测试用例run运行项目clean清理项目缓存package将项目打包console进入Scala REPL
sbt指令可以在直接在sbt的交互shell内使用,也可以作为参数跟在sbt指令之后直接在命令行中使用。
sbt项目结构
sbt项目结构与maven项目类似。一个基本的sbt项目具有以下路径结构:
项目名称
├── build.sbt # 项目依赖关系(构建定义)
├── project
│ ├── plugins.sbt # 添加sbt插件
│ └── build.properties # 构建规则与参数
└── src # 源码目录
├── main
│ └── scala
│ └── XXX.scala
└── test
└── scala
└── TestXXX.scala
新创建的项目没有target目录,但在sbt交互shell中执行了run之后还会生成target和project/target目录。 target目录中包含的所有内容均由编译系统生成,将项目目录加入版本控制时需要忽略这些目录。
添加项目依赖
项目依赖主要定义在项目根目录下的build.sbt文件中,通过自定义build.sbt文件中的libraryDependencies配置项即可向项目中添加托管依赖。 project目录下也可以添加*.scala构建定义。
build.sbt文件遵循Scala语法,libraryDependencies配置项实际上是一个类型为sbt.SettingKey[scala.Seq[sbt.ModuleID]]的变量。
每一项依赖由sbt.ModuleID类型定义,一个具体的依赖项格式如下所示:
// 普通依赖
groupID % artifactID % revision
// 在指定配置下的依赖
groupID % artifactID % revision % configuration
// 对于开放源码的库,可以指定在添加依赖时同时下载库源码和Java DOC
groupID % artifactID % revision % withSource() withJavadoc()
/*
使用%%符号连接groupID和artifactID,
则会将当前Scala的大版本号追加到artifactID上,
Scala相关项目的artifactID命名上通常会以使用的Scala的大版本号作为结尾
*/
groupID %% artifactID % revision
- 依赖的描述信息与maven类似,实际上sbt可以直接添加maven仓库的依赖,包的具体信息可以在maven中心仓库通过包名进行搜索得到。
sbt.SettingKey类型重载了+=和++=运算符:
+=运算符用于添加单项依赖,如:
libraryDependencies = groupID % artifactID % revision
++=运算符用于添加多个依赖序列,如:
libraryDependencies ++= Seq(
groupID0 % artifactID0 % revision0,
groupID1 % artifactID1 % revision1,
...
)
常用的依赖
包的信息可以在Maven中心仓库搜索到,地址为http://search.maven.org/。
一些常用包的GroupId和ArtifactId信息如下:
| 包介绍 | GroupId | ArtifactId |
|---|---|---|
| MySQL数据库JDBC驱动 | mysql | mysql-connector-java |
| Slick | com.typesafe.slick | slick_[Scala主版本号] |
| Akka | com.typesafe.akka | akka-actor_[Scala主版本号] |
| Scala Swing | org.scala-lang.modules | scala-swing_[Scala主版本号] |
Lightbend Activator
Activator提供了成套的Scala开发环境,相当于:
Scala编译器 + sbt + Play Framework + Akka + 项目模版 + 基于Play的WEB端项目管理
Activator内置了sbt,可以直接使用Activator管理、构建sbt项目。
安装与配置Activator
大多数Linux发行版都没有将Activator添加到仓库中,因而无论是Linux或是Windows环境下,都需要从官网下载Activator。
配置Activator方式与sbt类似。
从http://www.lightbend.com/activator/download下载完整版的Activator,解压后将bin目录加入PATH环境变量中即可。
Activator基本操作
在普通目录中输入activator指令会在浏览器中打开Activator的帮助页面。
在sbt项目目录中输入activator指令会进入sbt交互shell。
其它常见的指令:
$ activator ui进入WEB端的Activator界面。$ activator shell进入sbt交互shell。$ activator list-templates列出模版列表。
Activator中带有大量的预定义项目模版,使用模版创建项目:
$ activator new [项目名称] [模版名称]
Activator同样支持与sbt的指令。
浙公网安备 33010602011771号