diff --git a/docs/building-spark.md b/docs/building-spark.md index 0086aeaaa4701..1d3e0b1b7d396 100644 --- a/docs/building-spark.md +++ b/docs/building-spark.md @@ -256,3 +256,19 @@ On Linux, this can be done by `sudo service docker start`. or ./build/sbt docker-integration-tests/test + +## Change Scala Version + +To build Spark using another supported Scala version, please change the major Scala version using (e.g. 2.12): + + ./dev/change-scala-version.sh 2.12 + +For Maven, please enable the profile (e.g. 2.12): + + ./build/mvn -Pscala-2.12 compile + +For SBT, specify a complete scala version using (e.g. 2.12.6): + + ./build/sbt -Dscala.version=2.12.6 + +Otherwise, the sbt-pom-reader plugin will use the `scala.version` specified in the spark-parent pom. diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala index 1f45a06084c0d..a5ed9088eaa4d 100644 --- a/project/SparkBuild.scala +++ b/project/SparkBuild.scala @@ -94,6 +94,12 @@ object SparkBuild extends PomBuild { case Some(v) => v.split("(\\s+|,)").filterNot(_.isEmpty).map(_.trim.replaceAll("-P", "")).toSeq } + + Option(System.getProperty("scala.version")) + .filter(_.startsWith("2.12")) + .foreach { versionString => + System.setProperty("scala-2.12", "true") + } if (System.getProperty("scala-2.12") == "") { // To activate scala-2.10 profile, replace empty property value to non-empty value // in the same way as Maven which handles -Dname as -Dname=true before executes build process. diff --git a/repl/pom.xml b/repl/pom.xml index 861bbd7c49654..e8464a688336b 100644 --- a/repl/pom.xml +++ b/repl/pom.xml @@ -32,8 +32,8 @@ repl - scala-2.11/src/main/scala - scala-2.11/src/test/scala + src/main/scala-${scala.binary.version} + src/test/scala-${scala.binary.version} @@ -167,14 +167,4 @@ - - - scala-2.12 - - scala-2.12/src/main/scala - scala-2.12/src/test/scala - - - - diff --git a/repl/scala-2.11/src/main/scala/org/apache/spark/repl/SparkExprTyper.scala b/repl/src/main/scala-2.11/org/apache/spark/repl/SparkExprTyper.scala similarity index 100% rename from repl/scala-2.11/src/main/scala/org/apache/spark/repl/SparkExprTyper.scala rename to repl/src/main/scala-2.11/org/apache/spark/repl/SparkExprTyper.scala diff --git a/repl/scala-2.11/src/main/scala/org/apache/spark/repl/SparkILoopInterpreter.scala b/repl/src/main/scala-2.11/org/apache/spark/repl/SparkILoopInterpreter.scala similarity index 100% rename from repl/scala-2.11/src/main/scala/org/apache/spark/repl/SparkILoopInterpreter.scala rename to repl/src/main/scala-2.11/org/apache/spark/repl/SparkILoopInterpreter.scala