一、构建简单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
命令进行交互模式
# 在交互模式中能够运行常见的命令,例如,进行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 这些文件中定义的内容)。在修改了构建定义文件之后需要重新加载。 |
参考:https://www.cnblogs.com/codingexperience/p/5372617.html