追記:
残念ながらsbt 0.13 以降 deprecatedです・・・ https://github.com/sbt/sbt/blob/v0.13.0/main/src/main/scala/sbt/Defaults.scala#L1541-L1542
Seqじゃなくseqという、小文字なのがポイントです。*1
- Seqを使って型推論にまかせると
Seq[sbt.Project.Setting[_ >: java.lang.String with Seq[sbt.ModuleID] ] ]
とか変な型になる
scala> Seq(libraryDependencies ++= Seq() ,scalaVersion := "2.10.0") res0: Seq[sbt.Project.Setting[_ >: java.lang.String with Seq[sbt.ModuleID]]] = List(setting(ScopedKey(Scope(This,This,This,This),library-dependencies)) at NoPosition, setting(ScopedKey(Scope(This,This,This,This),scala-version)) at NoPosition)
- それを防ぐために、以下のように型を明示してる場合がそれなりにある
https://github.com/scalaz/scalaz/blob/v7.0.0-M7/project/build.scala#L10-L12
type Sett = Project.Setting[_] lazy val standardSettings: Seq[Sett] = Defaults.defaultSettings
- でもそれ*2、sbt 標準であるよ!
というだけの話
https://github.com/sbt/sbt/blob/v0.12.2-RC2/main/Defaults.scala#L1274
build.sbt 内で使われてるものと同じはずです。まぁ別に型がおかしくならない*3ならSeq使っててかまいませんし、これ知らない人にとっては、短く書けても逆に一瞬よくわからなくなるかもしれませんが・・・