sbt使用详解

原创 2015年11月20日 19:19:01

前两天安好的sbt但是在真正的用的时候还是遇到很多问题,所以在系统学习了解下。

安装:

我的系统为centos6.5故采用官方提供的在线安装:

curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo
sudo mv bintray-sbt-rpm.repo /etc/yum.repos.d/
sudo yum install sbt

然后等完毕可以输入 sbt sbt-version来进行查看安装是否成功。(这一步可能会很辛苦因为第一次运行的时候他会下载很多东西,而且大部分资源都是在国外,很可能不成功,所以还是耐心点。我前几篇有文章介绍加快sbt下载的文章可以去看下,但是感觉下载源的时候还是有点帮助。)

sbt执行步骤:

sbt 完全按照约定工作。sbt 将会自动找到以下内容:

  • 项目根目录下的源文件
  • src/main/scala 或 src/main/java 中的源文件
  • src/test/scala 或 src/test/java 中的测试文件
  • src/main/resources 或 src/test/resources 中的数据文件
  • lib 中的 jar 文件

默认情况下,sbt 会用和启动自身相同版本的 Scala 来构建项目。 你可以通过执行 sbt run 来运行项目或者通过 sbt console 进入 Scala REPLsbt console 已经帮你 设置好项目的 classpath,所以可以根据项目的代码尝试实际的 Scala 示例。

sbt结构说明

基础目录 

在 sbt 的术语里,“基础目录”是包含项目的目录。所以,如果你创建了一个和 Hello, World 一样的项目hello ,包含 hello/build.sbt 和 hello/hw.scala, hello 就是基础目录。

源代码 

源代码可以像 hello/hw.scala 一样的放在项目的基础目录中。然而,大多数人不会在真实的项目中这样做,因为太杂乱了。 sbt 和 Maven 的默认的源文件的目录结构是一样的(所有的路径都是相对于基础目录的):

src/
  main/
    resources/
       <files to include in main jar here>
    scala/
       <main Scala sources>
    java/
       <main Java sources>
  test/
    resources
       <files to include in test jar here>
    scala/
       <test Scala sources>
    java/
       <test Java sources>

src/ 中其他的目录将被忽略。而且,所有的隐藏目录也会被忽略。

构建产品 

构建出来的文件(编译的 classes,打包的 jars,托管文件,caches 和文档)默认写在 target 目录中。

交互模式 

在你的项目目录下运行 sbt 不跟任何参数:

$ sbt

执行 sbt 不跟任何命令行参数将会进入交互模式。交互模式有一个命令行(含有 tab 自动补全功能和历史记录)。

例如,在 sbt 命令行里输入 compile

> compile

再次 compile,只需要按向上的方向键,然后回车。 输入 run 来启动程序。 输入 exit 或者 Ctrl+D (Unix)或者 Ctrl+Z (Windows)可以退出交互模式。

批处理模式 

你也可以用批处理模式来运行 sbt,可以以空格为分隔符指定参数。对于接受参数的 sbt 命令,将命令和参数用引号引起来一起传给 sbt。例如:

$ sbt clean compile "testOnly TestA TestB"

在这个例子中,testOnly 有两个参数 TestA 和 TestB。这个命令会按顺序执行(clean, compile, 然后 testOnly)。

常用命令 

下面是一些非常常用的的 sbt 命令。更加详细的列表请参见 命令行参考

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 这些文件中定义的内容)。在修改了构建定义文件之后需要重新加载。

添加依赖库 

有两种方式添加第三方的依赖。一种是将 jar 文件 放入 lib/(非托管的依赖)中,另一种是在build.sbt 中添加托管的依赖,像这样:

val derby = "org.apache.derby" % "derby" % "10.4.1.3"

lazy val commonSettings = Seq(
  organization := "com.example",
  version := "0.1.0",
  scalaVersion := "2.11.4"
)

lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
    name := "hello",
    libraryDependencies += derby
  )

就是像这样添加版本为 10.4.1.3 的 Apache Derby 库作为依赖。

key libraryDependencies 包含两个方面的复杂性:+= 方法而不是 :=,第二个就是 % 方法。+=方法是将新的值追加该 key 的旧值后面而不是替换它,这将在 更多设置 中介绍。% 方法是用来从字符串构造 Ivy 模块 ID 的,将在 库依赖 中介绍。



版权声明:本文为博主原创文章,未经博主允许不得转载。

sbt 安装以及编译spark程序

安装sbt 及配置 下载 wget https://dl.bintray.com/sbt/native-packages/sbt/0.13.11/sbt-0.13.11.tgz2.解压并设置环境变量t...
  • sadfasdgaaaasdfa
  • sadfasdgaaaasdfa
  • 2016年03月07日 18:37
  • 4656

windows下使用sbt搭建Scala开发环境

由于业务的需要,开始学习使用Scala语言,下面将scala项目的开发搭建做了一个总结。   1. 需要的软件 Scala:      http://www.scala-lang.org/do...
  • zhifeiyu2008
  • zhifeiyu2008
  • 2015年11月11日 14:15
  • 7184

使用sbt构建scala应用

sbt构建scala应用
  • u012432611
  • u012432611
  • 2015年08月24日 16:31
  • 1523

第97讲:使用SBT开发Akka第一个案例环境搭建详解学习笔记

第97讲:使用SBT开发Akka第一个案例环境搭建详解学习笔记 使用IDEA搭建scala SBT开发环境 1.下载IDEA. Windows版:http://download-cf.jetbr...
  • slq1023
  • slq1023
  • 2015年09月10日 21:39
  • 1075

build.sbt 的定义格式详解

一个简单的build.sbt文件内容如下: name := "hello" // 项目名称 organization := "xxx.xxx.xxx" // 组织名称 version...
  • lyyybz
  • lyyybz
  • 2016年11月29日 10:17
  • 209

Windows下IDEA,Git,SBT整合详解

IDEA,Git,SBT,Java,Scala的相关安装不做过多累述。 版本: jdk7 sbt-0.13.5.zip scala-2.11.7.tgz IDEA2016 Git-1.9....
  • scgaliguodong123_
  • scgaliguodong123_
  • 2016年08月18日 19:30
  • 708

使用SBT构建Scala开发的Android工程

最近接触了shadowsocks的Android客户端项目源码(https://github.com/shadowsocks/shadowsocks-android),刚好这个项目是使用Scala开发...
  • u010403463
  • u010403463
  • 2016年07月11日 21:15
  • 2290

如何使用github自制Android library开源依赖。可以生成gradle、maven、sbt、leigingen等版本

Android开发朋友们的福利呀!! 我们在Android开发过程中,少不了使用别人的第三方库,如:compile 'com.lovedise:permissiongen:0.0.6'。这个放在我...
  • zzq272804553
  • zzq272804553
  • 2016年12月30日 10:33
  • 947

Scala基础教程--1 使用sbt创建scala项目

使用sbt创建scala项目 SBT安装使用   SBT支持Windows和Linux、Mac等操作系统 下载   官方网站:http://www.scala-sbt.org/   wget...
  • hany3000
  • hany3000
  • 2015年12月09日 02:17
  • 1204

使用Oracle默认SBT接口测试磁带通道

使用Oracle默认SBT接口测试磁带通道 1、创建备份目录 [oracle@utf10g ~]$ mkdir -p /backup/sbt 2、使用RMAN连接目标数据库(即需要备份的数据库)...
  • mrluoe
  • mrluoe
  • 2012年08月17日 11:14
  • 1668
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sbt使用详解
举报原因:
原因补充:

(最多只允许输入30个字)