sbt介绍与构建Scala项⽬
⼀、sbt简介
sbt是类似ANT、MAVEN的构建⼯具,全称为Simple build tool,是Scala事实上的标准构建⼯具。
主要特性:
1. 原⽣⽀持编译Scala代码和与诸多Scala测试框架进⾏交互;
2. 使⽤Scala编写的DSL(领域特定语⾔)构建描述
3. 使⽤Ivy作为库管理⼯具
4. 持续编译、测试和部署
5. 整合scala解释器快速迭代和调试
6. ⽀持Java与Scala混合的项⽬
⼆、sbt安装
在sbt官⽹,这⾥我是下载的sbt-0.13.11.zip,下载后加压到⾃⼰定义的⽂件夹,然后将解压⽬录的bin⽬录加⼊PATH环境
Linux环境,使⽤`sudo vim /etc/profile`打开配置⽂件,添加下⾯的命令
export SBT_HOME=/opt/sbt
export path=path:$SBT_HOME/bin
Windows环境,打开⾼级系统设置,在环境变量中添加系统变量
SBT_HOME => D:\sbt
并加⼊path路径,
path=> path;%SBT_HOME%\bin
安装完成后,检验是否安装成功。
使⽤sbt命令,该命令会执⾏⼀段时间,下载jar包,加载插件,最后查看是否进⾏交互界⾯,如下图所⽰
C:\Users\test>sbt
[info] Loading global plugins from C:\Users\test\.sbt\0.13\plugins
[info] Set current project to test(in build file:/C:/Users/test/)
>
sbt的简单配置
配置ivy⽬录
可以对sbt进⾏配置,能够配置ivy的⽂件⽬录,ivy是sbt的默认管理项⽬依赖⼯具,它默认是在user home下建⽴library repository,但⽤户可以配置ivy的library local repository。
修改sbt配置⽂件: [sbt安装⽬录]/,在配置⽂件中添加⼀⾏
-Dsbt.ivy.home=[你⾃⼰挑选的⽬录]/repository
配置库
感觉sbt运⾏时会从maven官⽹下载⼤量的jar包,可能会⾮常缓慢,可以添加国内的maven库,从⽽能够加快运⾏速度,在”~/.sbt”下创建repositories⽂件,添加下⾯的内容:
[repositories]
local # 本地ivy库
maven-local: file://~/.m2/repository # 本地Maven库
osc: maven.oschina/content/groups/public/ #开源中国的maven库,⽤于加快速度
typesafe: pesafe/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly sonatype-oss-releases
maven-central
sonatype-oss-snapshots
配置插件
sbt有⾃⼰的插件,这⾥介绍能够⽣成eclipse⽬录的插件:sbteclipse插件。
添加sbteclipse插件可以通过两种⽅式添加:
配置全局⽂件:~/.sbt/0.13/plugins/plugins.sbt
配置项⽬⽂件: PROJECT_DIR/project/plugins.sbt
在其中⼀个⽂件添加⼀⾏
addSbtPlugin("pesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
安装sbteclipse插件后可以在sbt交互界⾯使⽤`eclipse`命令⽣成eclipse项⽬
三、sbt构建Scala项⽬
简单构建Scala项⽬
创建⽂件SimpleProject/hw.scala
object Hi{
def main(args: Array[String]) = println("Hello world!")
}
运⾏
D:\MyCode\Scala\SimpleProject>sbt
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in8.0
[info] Loading global plugins from C:\Users\test\.sbt\0.13\plugins
[info] Set current project to hello (in build file:/D:/MyCode/Scala/SimpleProject/)
> run
[info] Updating {file:/D:/MyCode/Scala/SimpleProject/}
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Compiling 1 Scala source to D:\MyCode\Scala\BuildProject\target\scala-2.
[info] Running Hi
Hello world!
[success] Total time: 43 s, completed 2016-4-920:16:21
构建Scala完整项⽬
sbt项⽬⽬录与Maven项⽬⽬录类似,创建下⾯的⽬录
├── src
│ ├── main
│ │ ├── java
│ │ ├── resources
│ │ └── scala
│ ├── test
│ │ ├── java
│ │ ├── resources
│ │ └── scala
├── build.sbt
├── project
│ ├── build.properties
│ ├── plugins.sbt
其中bulid.sbt为构建定义,project⽬录是你的⼯程内另⼀个⼯程的项⽬,它知道如何构建你的⼯程,即project项⽬为元构建,相关⽂档为。简单的bulid.sbt⽂件
name := "hello"// 项⽬名称
organization := ""// 组织名称
version := "0.0.1"// 版本号
scalaVersion := "2.10.6"// 使⽤的Scala版本号
// 添加项⽬依赖
libraryDependencies += "ch.qos.logback" % "logback-core" % "1.0.0"
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.0.0"
// 或者
libraryDependencies ++= Seq(
"ch.qos.logback" % "logback-core" % "1.0.0",
"ch.qos.logback" % "logback-classic" % "1.0.0",
...
)
// 添加测试代码编译或者运⾏期间使⽤的依赖
libraryDependencies ++= Seq("org.scalatest" %% "scalatest" % "1.8" % "test")
创建项⽬⽬录并添加配置⽂件完成后,⽣成eclipse项⽬:在项⽬基⽬录下运⾏下列命令sbt eclipse
eclipse导入整个项目通过上⾯的命令能够⽣成eclipse⽬录,使⽤eclipse导⼊项⽬,即可开始开发。四、sbt的交互模式
在项⽬⽬录下运⾏sbt命令进⾏交互模式
sbt
在交互模式中能够运⾏常见的命令,例如,进⾏compile:
> compile
其它常见命令
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这些⽂件中定义的内容)。在修改了构建定义⽂件之后需要重新加载。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论