I would like to have an sbt build involving the following subprojects:
crossScalaVersions := Seq("2.11.12", "2.12.4")
foo-app (2.12, depends on foo-shared)
scalaVersion := "2.12.4"
foo-spark (2.11, depends on foo-shared)
scalaVersion := "2.11.12"
Independently of each other, the project tests and builds already seem to work with this naive setup, i.e. I can do
++ 2.11.12 fooSpark/test fooSpark/assembly
++ 2.12.4 fooApp/test fooApp/assembly
However, there’s a few remaining issues:
- How can I run the full tests for all projects at once? If I just do
sbt test, the fooSpark tests will fail due to a NoSuchMethodError, apparently due to picking up the wrong version of fooShared.
- How can I trigger the builds in Jenkins, i.e. how would I orchestrate
++ <version>or equivalent from the outside?
I’m still wondering whether my overall approach makes sense. I’m not entirely fluent in multiproject builds, yet, and this is my first venture into cross-compiling, and I haven’t found much information on the combination of the two. (May just be a lack of Google fu on my side, though.) Any hints, pointers and suggestions appreciated.