一、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安装目录]/conf/sbtconfig.txt,在配置文件中添加一行

-Dsbt.ivy.home=[你自己挑选的目录]/repository

配置库

感觉sbt运行时会从maven官网下载大量的jar包,可能会非常缓慢,可以添加国内的maven库,从而能够加快运行速度,在”~/.sbt”下创建repositories文件,添加下面的内容:

[repositories]
local                         # 本地ivy库maven-local: file://~/.m2/repository       # 本地Maven库 
osc: http://maven.oschina.net/content/groups/public/    #开源中国的maven库,用于加快速度
typesafe: http://repo.typesafe.com/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插件https://github.com/typesafehub/sbteclipse。

添加sbteclipse插件可以通过两种方式添加:

  • 配置全局文件:~/.sbt/0.13/plugins/plugins.sbt
  • 配置项目文件: PROJECT_DIR/project/plugins.sbt

在其中一个文件添加一行

addSbtPlugin("com.typesafe.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 in 8.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/}root...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Compiling 1 Scala source to D:\MyCode\Scala\BuildProject\target\scala-2.10\classes...
[info] Running Hi
Hello world!
[success] Total time: 43 s, completed 2016-4-9 20: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项目为元构建,相关文档为http://www.scala-sbt.org/0.13/docs/zh-cn/Organizing-Build.html。

简单的bulid.sbt文件

name := "hello"      // 项目名称

organization := "xxx.xxx.xxx"  // 组织名称

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导入项目,即可开始开发。

四、sbt的交互模式

在项目目录下运行sbt命令进行交互模式

sbt

在交互模式中能够运行常见的命令,例如,进行compile:

>  compile

其它常见命令

clean 删除所有生成的文件 (在 target 目录下)。
compile 编译源文件(在 src/main/scalasrc/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.sbtproject/*.scalaproject/*.sbt 这些文件中定义的内容)。在修改了构建定义文件之后需要重新加载。

转载于:https://www.cnblogs.com/codingexperience/p/5372617.html

sbt介绍与构建Scala项目相关推荐

  1. cmd使用SBT构建scala项目

    安装 通过 Windows 安装包安装 ,下载msi包下一步就可以了 https://www.scala-sbt.org/download.html 测试案例 运行一个案例helloworld 新建一 ...

  2. 【示例】使用maven构建scala项目并打包运行

    pom.xml 文件 <activeByDefault>true</activeByDefault> activeByDefault标签的值为true的话表示为默认的profi ...

  3. 安装SBT环境运行Scala项目

    介绍2种spark安装方式 通过docker的方式安装 下载docker文件 https://gitee.com/pingfanrenbiji/docker-spark docker-compose ...

  4. 构建scala+IDEA+sbt开发环境

    构建scala+IDEA+sbt开发环境 @(SCALA)[scala] 设置build.sbt后,idea不会自动下载依赖关系??后台运行sbt compile成功,但idea没有自动将相应的包放到 ...

  5. 利用makefile构建c++项目的思路介绍

    入门介绍 起因是我在工作中,遇到了一个多个执行文件打包成的组件,而每个执行文件都需要将pb编进二进制中,导致release包非常大.所以想到,是否应该将pb编程动态链接库,再供可执行文件使用呢?达成这 ...

  6. vue-cli构建SPA项目结构介绍spa完成路由开发及嵌套路由

    目录 一.vue-cli构建SPA项目结构介绍 二.spa完成路由开发 三. 嵌套路由 一.vue-cli构建SPA项目结构介绍 前提:搭建好NodeJS环境    node -v    npm -v ...

  7. 客快物流大数据项目(十四):DockerFile介绍与构建过程解析

    目录 DockerFile介绍与构建过程解析 一.什么是Dockerfile 1.介绍 2.Dockerfile构建步骤

  8. Scons构建C++项目

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/08/30/scons/ 前言 我是一个 linux c++ 开发者,但是一直对 Makefile 的语法很是头痛,每 ...

  9. 在Eclipse中使用Maven构建Spring项目

    最新版的Spring需要使用Maven构建,本文讲述怎么在Eclipse构建Maven项目,以配置Spring项目为例. maven简单介绍 maven是构建工具,也是构建管理工具.ant只是构建工具 ...

最新文章

  1. 想学python有什么用-Python为什么这么火?学习python有什么用?
  2. CSDN:借助工具对【本博客访问来源】进行数据图表可视化(网友主要来自美国、新加坡、日本、英德加澳等)——记录数据来源截止日期20200718晚上22点
  3. 工商银行打造在线诊断平台的探索与实践
  4. #51CTO学院四周年# 51CTO与我的大学生活
  5. 我和学员那些事儿——涅槃重生的背后
  6. HALCON示例程序obj_diff.hdev算子obj_diff 的使用
  7. Vue简介及HelloWord编写
  8. freeMarker(十二)——模板语言补充知识
  9. 微博返回顶部按钮实现方法大剧透
  10. js里面把密码encode_Python实战案例:这是你见过的最详细的JS加密登录某博
  11. 网易云音乐数仓模型设计实践
  12. 蓝牙inquiry流程之HCI_Inquiry_Result_With_RSSI和HCI Extended Inquiry Result处理
  13. 苹果mac系统隐藏文件的显示和取消显示
  14. Java实现中国象棋(联机版)
  15. IT实习生需要做什么?IT实习心得
  16. 数字电路之组合逻辑电路
  17. Comparable+Comparator+Cloneable接口
  18. 福州大学计算机科学非全,福大数计/软件学院2020年招收非全日制专业硕士研究生调剂方案...
  19. 查看yum仓库中可以安装的docker版本命令
  20. 使用FFmpeg将字幕文件集成到视频文件

热门文章

  1. 博弈论——合作博弈的Shapley值如何求解?
  2. Excel用排序做工资条
  3. JAVA实现雪花飘落动画效果
  4. stackoverflow 查看最新回复
  5. Android Studio Chipmunk 发布啦,快来看看有什么更新
  6. SecureCRT的安装及破解(详细过程)
  7. CSRF 跨站请求伪造攻击
  8. 伪原创视频需要改什么 改视频md5的软件
  9. 基于SOA架构的开发策略详解
  10. 软件测试工程师在线培训,软件测试工程师培训.PDF