sbt核心概念
- 基于Scala,由于sbt是基于Scala編寫的,所以相關(guān)的配置語法和Scala很相似
- .sbt 工程構(gòu)建定義
- 可以定義一個(gè)大的 Setting對象序列,最后被轉(zhuǎn)化為一個(gè)key-value鍵值對供sbt使用
- 可以通過
:=,+=或++=配置一個(gè)配置
- 配置是不可變的,僅可以通過轉(zhuǎn)換來修改。例如,一個(gè) Setting對象轉(zhuǎn)換成一個(gè)key-value鍵值對后是構(gòu)建一個(gè)新的Map對象來修改的配置的,原值沒有任何修改
- 每個(gè)配置都有一個(gè)類型,通過key的定義來決定
- 任務(wù)是一種特殊的配置,它是可以重復(fù)調(diào)用運(yùn)算的,而參數(shù)配置是在項(xiàng)目加載中只初始化一次
- 作用域
- 每個(gè)配置可能有多個(gè)值在不同的作用域中
- 作用域有三個(gè)維度:項(xiàng)目、配置、任務(wù)
- 作用域概念使得一個(gè)配置可以再每個(gè)項(xiàng)目、每個(gè)任務(wù)、每個(gè)配置下都可能產(chǎn)生不同的行為
- 配置維度指的是構(gòu)建類型,如對于主項(xiàng)目(main)為(Compile)或測試為(Test)
- 項(xiàng)目維度也支持工程級別的作用域
- 作用域具有備選和委托的特性
- .sbt vs .scala 配置文件定義
- 將參數(shù)配置放到
.sbt配置文件中,將任務(wù)配置或者大的代碼段配置放到.scala配置文件中
- 插件可以擴(kuò)展配置
- 通過
addSbtPlugin方法添加一個(gè)插件
如果以上的概念有任何疑惑可以尋求幫助、重新返回去閱讀或者在交互模式下做一些試驗(yàn)。。
祝好運(yùn)!