sbt笔记二 Running

交互模式

例如咱们要编译项目,操做以下:
$ sbt
> compile
上箭头按键能够选择前一条命令。
运行程序用run命令。
离开交互模式,用exit命令或Ctrl+D。

批量模式

例如咱们顺序执行几个命令:
$ sbt clean compile "test-only TestA TestB"
(clean,compile,最后test-only)

其中test-only有两个参数,TestA和TestB,把他们做为一个总体,须要用双引号包起来。 java

自动编译

若是咱们想在文件改变的时候自动编译(就像eclipse那样),运行:
~ compile
sbt会先执行一次编译,并进入阻塞状态。修改scala文件并保存,sbt就会自动从新编译这个文件。在控制台输入回车能够回到交互模式。
~前缀也能够用在批量模式下,但下面的命令貌似不太好用:
sbt ~ compile run
E:\study\study-sbt\hello-sbt>sbt ~ compile run
[info] Loading project definition from E:\study\study-sbt\hello-sbt\project
[info] Set current project to hello-sbt (in build file:/E:/study/study-sbt/hello
-sbt/)
1. Waiting for source changes... (press enter to interrupt)
2. Waiting for source changes... (press enter to interrupt)
3. Waiting for source changes... (press enter to interrupt)

[info] Updating {file:/E:/study/study-sbt/hello-sbt/}default-dea105...
[info] Resolving org.scala-lang#scala-library;2.10.0 ...
[info] Done updating.
[info] Compiling 1 Scala source to E:\study\study-sbt\hello-sbt\target\scala-2.1
0\classes...
[success] Total time: 4 s, completed 2013-1-23 12:01:17
[info] Running Hello
Hello sbt!12
[success] Total time: 0 s, completed 2013-1-23 12:01:17

可见只有最后一次的更改生效了。。。 shell

经常使用命令

clean      删除全部在target目录中生成的文件
compile  编译main源码(src/main/scala和src/main/java)
test        编译和运行全部测试程序
console  启动scala解释器,它的classpath中包含已编译的源码和全部依赖。输入":quit"(没有引号)或Ctrl+D能够返回sbt
run <argument>* 在当前JVM中运行Main Class。
package 打jar包,jar里包括src/main/resources里的文件,以及从src/main/scala和src/main/java编译的class文件。
help <command> 显示指定命令的详细帮助信息。直接输入help显示命令列表。

reload  从新加载配置(build.sbt, project/*.scala, project/*.sbt)。修改构建文件后须要重载才能生效。 eclipse

自动完成

在交互模式下,输入命令的前几个字符,按Tab键能够自动完成,若是有多个可能的结果,也会列出来。多按几回Tab会有惊喜!

在空命令提示符下直接输入tab能够查看全部命令。 测试

历史命令(History Commands)

交互模式下会记录操做历史,即便退出或重启了sbt。上箭头按键能够查看上一条执行的命令。
!    至关于help,不过显示的是历史命令
!!   从新执行上一条命令
!:   显示以前执行过的全部命令(显示的内容包含这条命令自身)
!:n  显示最近执行的n条命令(显示的内容包含这条命令自身)
!n   执行索引为n的命令。索引能够在!:的结果中看到。
!-n  执行这条命令以前的第n条命令
!string 执行最近一条以'string'开头的命令
!?string 执行最近一条包含'string'的命令

(最后两个感受没什么用) ui

!-n例子
> clean
[success] Total time: 0 s, completed 2013-1-23 13:55:19
> !:5
   40  !:
   41  clean
   42  !:
   43  clean
   44  !:5
> !-2
clean
[success] Total time: 0 s, completed 2013-1-23 13:55:30
!string例子
> !:10
   44  !:5
   45  clean
   46  compile
   47  !:10
   48  clean
   49  !:
   50  clean
   51  !:
   52  !:5
   53  !:10
> !c
clean
[success] Total time: 0 s, completed 2013-1-23 13:58:45
> !co
compile
...
相关文章
相关标签/搜索