1. 控制台项目

控制台项目 

描述 

consoleProject 任务启动 Scala 解释器,并访问您的项目定义和 sbt。具体来说,解释器是在已执行以下命令的情况下启动的

import sbt._
import Keys._
import <your-project-definition>._
import currentState._
import extracted._
import cpHelpers._

例如,使用 sbt 的进程库(将在 Scala 2.9 的标准库中包含)运行外部进程

> "tar -zcvf project-src.tar.gz src" !
> "find project -name *.jar" !
> "cat build.sbt" #| "grep version" #> new File("sbt-version") !
> "grep -r null src" #|| "echo null-free" !
> uri("http://databinder.net/dispatch/About").toURL #> file("About.html") !

consoleProject 可用于创建和修改构建,就像通常使用 Scala 解释器来探索编写代码一样。请注意,这会让您获得对构建的原始访问权限。例如,考虑您传递给 IO.delete 的内容。

访问设置 

要获取特定设置,请使用以下格式

> val value = (<scope> / <key>).eval

示例 

> IO.delete( (Compile / classesDirectory).eval )

显示当前编译选项

> (Compile / scalacOptions).eval foreach println

显示另外配置的仓库。

> resolvers.eval foreach println

评估任务 

要评估任务(及其依赖项),请使用相同的格式

> val value = (<scope> / <key>).eval

示例 

显示所有仓库,包括默认仓库。

> fullResolvers.eval foreach println

显示用于编译和测试的类路径

> (Compile / fullClasspath).eval.files foreach println
> (Test / fullClasspath).eval.files foreach println

状态 

当前 构建状态 可作为 currentState 获取。currentState 的内容默认情况下会被导入,并且可以使用不带限定符的方式。

示例 

显示构建中要执行的剩余命令(如果您像这样调用 consoleProject 则更有意义:; consoleProject ; clean ; compile

> remainingCommands

显示当前注册的命令数量

> definedCommands.size