giter8-pluginとtravis-ciで、複数versionのScalaのテストをする

giter8-pluginのversion0.6.4時点の情報です。giter8-pluginは、giter8で作ったテンプレート自体のテストを書くためのsbt-pluginです。
giter8-plugin使ってる人がそもそも少ないでしょうが、giter8でテンプレート定義するなら、せっかくなのでテスト書きましょう。
一時期色々混乱があったり、publishされてなくて直参照しないといけなかったり、新しいsbt0.13に対応するのが遅かったりしてとても面倒でしたが、これ書いてる現在はちゃんとpublishされてる

https://oss.sonatype.org/content/repositories/releases/net/databinder/giter8/giter8-plugin_2.10_0.13/

ので、以前よりは面倒なく使えます。

さて、あとはもうコミット見てもらいましょう

https://github.com/unfiltered/unfiltered.g8/pull/1/files

g8Test時の値を変更するには、

G8Keys.properties in G8Keys.g8 in Test

というKeyを変更します。このKeyは TaskKey[Map[String, String] ] です。

https://github.com/n8han/giter8/blob/0.6.4/plugin/src/main/scala/giterate-plugin.scala#L14


デフォルトではそのKeyには
src/main/g8/default.properties
の値が設定されるようになってます。その値を := で上書きしてしまうと、全部の値を設定しないといけないし、 += ++= はSeqにしか使えない(今回の場合型がMap)なので、以下のように ~= で、既存の値はそのまま利用しつつ上書きしたい部分だけ設定します

G8Keys.properties in G8Keys.g8 in Test ~= {_ + /*上書きしたい設定*/}