SBT和Lightbend Activator的使用

from http://blog.csdn.net/u011152627/article/details/52043883

构建工具 sbt

sbt全称Simple Build Tool,是Scala项目的标准构建工具,类似于Java下的MavenGradle

安装与配置sbt

主流Linux发行版的仓库中,一般都包含sbt,可以使用发行版的包管理器安装sbt,以ArchLinux为例:

# pacman -S sbt

在Windows环境下,可以从官网http://www.scala-sbt.org/download.html中下载,下载完成之后解压并将目录下的bin目录加入PATH中。

如果已经安装了Activator,则无需再安装sbtActivator中已经包含了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之后还会生成targetproject/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/。 
一些常用包的GroupIdArtifactId信息如下:

包介绍GroupIdArtifactId
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的指令。

posted @ 2016-11-10 16:27  princessd8251  阅读(486)  评论(0)    收藏  举报