diff options
Diffstat (limited to 'project/SparkBuild.scala')
-rw-r--r-- | project/SparkBuild.scala | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala index b7c6192243..570c9e50ed 100644 --- a/project/SparkBuild.scala +++ b/project/SparkBuild.scala @@ -57,6 +57,9 @@ object BuildCommons { val sparkHome = buildLocation val testTempDir = s"$sparkHome/target/tmp" + + val javacJVMVersion = settingKey[String]("source and target JVM version for javac") + val scalacJVMVersion = settingKey[String]("source and target JVM version for scalac") } object SparkBuild extends PomBuild { @@ -154,9 +157,17 @@ object SparkBuild extends PomBuild { if (major.toInt >= 1 && minor.toInt >= 8) Seq("-Xdoclint:all", "-Xdoclint:-missing") else Seq.empty }, - javacOptions in Compile ++= Seq("-encoding", "UTF-8"), + javacJVMVersion := "1.7", + scalacJVMVersion := "1.7", + + javacOptions in Compile ++= Seq( + "-encoding", "UTF-8", + "-source", javacJVMVersion.value, + "-target", javacJVMVersion.value + ), scalacOptions in Compile ++= Seq( + s"-target:jvm-${scalacJVMVersion.value}", "-sourcepath", (baseDirectory in ThisBuild).value.getAbsolutePath // Required for relative source links in scaladoc ), @@ -241,8 +252,9 @@ object SparkBuild extends PomBuild { enable(Flume.settings)(streamingFlumeSink) - enable(DockerIntegrationTests.settings)(dockerIntegrationTests) + enable(Java8TestSettings.settings)(java8Tests) + enable(DockerIntegrationTests.settings)(dockerIntegrationTests) /** * Adds the ability to run the spark shell directly from SBT without building an assembly @@ -591,6 +603,16 @@ object Unidoc { ) } +object Java8TestSettings { + import BuildCommons._ + + lazy val settings = Seq( + javacJVMVersion := "1.8", + // Targeting Java 8 bytecode is only supported in Scala 2.11.4 and higher: + scalacJVMVersion := (if (System.getProperty("scala-2.11") == "true") "1.8" else "1.7") + ) +} + object TestSettings { import BuildCommons._ |