自定义配置和任务

    配置有三种类型,其中SettingKey和TaskKey已经在介绍了,InputKey在任务配置的输入章节介绍。

    对于配置的一些例子:

    配置文件 .sbt中介绍在SettingKey[T]中的T表示该配置值得类型,在TaskKey[T]中T代表该任务返回的类型。并且也介绍了一个参数配置是一个常量,其在项目加载的时候就初始化好了,而一个任务配置是可以重复执行的(任何时候在交互模式下或批量脚本中都可以调用执行)

    所有的配置都定义在 , .scala文件或插件中,任何的在.scala配置文件中或在插件中的配置都将自动的合并到 .sbt 文件中。

    1. val sampleIntTask = taskKey[Int]("A sample int task.")
    2. sampleStringTask := System.getProperty("user.home")
    3. val sum = 1 + 2
    4. println("sum: " + sum)
    5. sum

    如果一个任务有依赖关系,可以直接引用依赖的配置,在 一章已经介绍了。

    实现任务最难的部分是用Scala代码实现该任务具体执行过程,例如,可以编写一个格式化HTML的任务用相关的HTML lib 库(自己可以定义添加一个依赖库,在该基础上编写)

    如果有许多通用的代码,可以将其提取到一个插件中,可以实现多项目的复用。