现在的位置: 首页 > 综合 > 正文

sbt Build Definition

2013年05月26日 ⁄ 综合 ⁄ 共 920字 ⁄ 字号 评论关闭

一个build definition定义了一系列的Setting[T], 每一个 Setting[T] 都是一种变形转换,每一个变形转换都会直接影响到sbt中的键值对,其中T是键值对中值的数据类型。也就是说每一个Setting[T]表现为一个键值对。但Scala中的键值对比属性文件(properties)中的键值对要复杂,它每一个键值对都是一个Scala表达式。

Build definition用.sbt或.scala文件都可以定义,只是方式有点不同。

Keys

一共有三种keys:

  1.   SettingKey[T]: 一个key和只计算一次的value(project加载时计算出来,之后都不会再变)。
  2.   TaskKey[T]: 一个key和每次都会运行的值。
  3.   InputKey[T]:  一个key,value是命令行参数。

Values

Unit是Scala中的void。

build.sbt如何定义 settings

一个build.sbt文件就是一系列由换行符分开的的Setting。每一个Setting都是一个Scala 表达式。

name := "hello"

Keys有一个方法叫“:=”, 这个方法返回一个Setting[T]。因此你也可以使用类似Java的语法调用这个方法:

name.:=("hello")

内嵌Keys

内嵌的keys都包含在Keys这个对象中。Build.sbt隐含了imports bt.Keys._

自定义的keys可以定义在.scala文件或plugin中。

TaskKey[T]

在sbt交互模式中,输入task的名字就会运行这个task。但是默认不会显示task 的结果,如果需要,得使用 show <task name> 的方式,而不是直接输入task name。

Imports in build.sbt

一共有三个隐含的imports:


import sbt._
import Process._
import Keys._

添加库依赖

有两种方法可以实现:

1.        直接把jars包放入lib/目录;

2.        在.sbt中添加类似表达式:

libraryDependencies +="org.apache.derby" % "derby" % "10.4.1.3"

抱歉!评论已关闭.