互換性の無い変更点
- 型クラスのインスタンスの名前衝突をパケージ名をプレフィックスすることで修正した。 #385 by @anatoliykmetyuk
- 可変長引数 (varargs) をデフォルトで使わないように変更した。
- sbt-scalaxb を auto plugin 化した。
バグフィックス
機能改善点
sbt-scalaxb への変更
scalaxb 1.5.0 より sbt-scalaxb は auto plugin 化される。
scalaxbSettings
追加して、sourceGenerators in Compile
する代わりに、ScalaxbPlugin
を有効化するだけでよくなった。
他の全てのセッティングやタスクは "scalaxb" とプレフィックスされる。
例えば、以前の packageName
というキーは scalaxbPackageName
に変更された。
Before:
import ScalaxbKeys._
lazy val root = (project in file(".")).
settings(
name := "foo-project").
settings(scalaxbSettings).
settings(
sourceGenerators in Compile += (scalaxb in Compile).taskValue,
packageName in (Compile, scalaxb) := "generated"
// packageNames in (Compile, scalaxb) := Map(uri("http://something/") -> "something"),
// logLevel in (Compile, scalaxb) := Level.Debug
)
After:
lazy val root = (project in file(".")).
enablePlugins(ScalaxbPlugin).
settings(
name := "foo-project",
scalaxbPackageName in (Compile, scalaxb) := "generated"
// scalaxbAutoPackages in (Compile, scalaxb) := true
)
#405 by @eed3si9n
可変 (mutable) case class
scalaxb 1.5.0 は可変な case class を生成するオプションを追加する。
case class Address(var name: String,
var street: String,
var city: String)
sbt-scalaxb では以下のように有効化できる:
lazy val root = (project in file(".")).
enablePlugins(ScalaxbPlugin).
settings(
name := "foo-project",
scalaxbPackageName in (Compile, scalaxb) := "generated",
scalaxbGenerateMutable in (Compile, scalaxb) := true
)
#390 by @AndreVanDelft
コントリビューター
バグ報告や pull request によって scalaxb の改善にお手伝いしていただいた皆さんにこの場を借りてお礼します。
git shortlog -sn --no-merges 1.4.1..release/1.5.0
によると今回のリリースでは以下の方々にコントリビュートしてもらった (敬称略): Anatoliy Kmetyuk (@anatoliykmetyuk), Eugene Yokota (@eed3si9n), Andre Van Delft (@AndreVanDelft), Jan-Kees van Andel (@jankeesvanandel), Joshua Reese (@joshlreese), and Mateusz Kołodziejczyk (@coutoPL).