SBT plugin that complements the pio build command.
This is a very simple plugin that provides a new build settings to all engine
templates: pioVersion.
Every engine template used to have a build.sbt file with PredictionIO version
hard-coded, e.g.
libraryDependencies ++= Seq(
"io.prediction" %% "core" % "0.8.6" % "provided",
"org.apache.spark" %% "spark-core" % "1.2.0" % "provided",
"org.apache.spark" %% "spark-mllib" % "1.2.0" % "provided")When one builds an engine template (pio build) with a mismatched version of
PredictionIO, such as 0.9.0, the build process will succeed without error. When
doing pio train, however, strange errors could occur, such as the infamous
java.lang.AbstractMethodError, with no useful information for debugging.
When pio build is run, it automatically generates a pio.sbt file at the
engine's project root directory before building the engine. The file sets
pioVersion to the correct value. Engine templates can use this value instead
of a hard coded one, e.g.
libraryDependencies ++= Seq(
"io.prediction" %% "core" % pioVersion.value % "provided",
"org.apache.spark" %% "spark-core" % "1.2.0" % "provided",
"org.apache.spark" %% "spark-mllib" % "1.2.0" % "provided")Add the following to your engine template's project/pio-build.sbt
addSbtPlugin("io.prediction" % "pio-build" % "0.9.0")and modify your engine template's build.sbt to use pioVersion as shown
above.