aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbuild/mvn6
-rw-r--r--external/java8-tests/pom.xml1
-rw-r--r--pom.xml39
-rw-r--r--project/SparkBuild.scala16
4 files changed, 59 insertions, 3 deletions
diff --git a/build/mvn b/build/mvn
index a78b93a685..c3ab62da36 100755
--- a/build/mvn
+++ b/build/mvn
@@ -141,9 +141,13 @@ cd "${_CALLING_DIR}"
# Now that zinc is ensured to be installed, check its status and, if its
# not running or just installed, start it
if [ -n "${ZINC_INSTALL_FLAG}" -o -z "`"${ZINC_BIN}" -status -port ${ZINC_PORT}`" ]; then
+ ZINC_JAVA_HOME=
+ if [ -n "$JAVA_7_HOME" ]; then
+ ZINC_JAVA_HOME="env JAVA_HOME=$JAVA_7_HOME"
+ fi
export ZINC_OPTS=${ZINC_OPTS:-"$_COMPILE_JVM_OPTS"}
"${ZINC_BIN}" -shutdown -port ${ZINC_PORT}
- "${ZINC_BIN}" -start -port ${ZINC_PORT} \
+ $ZINC_JAVA_HOME "${ZINC_BIN}" -start -port ${ZINC_PORT} \
-scala-compiler "${SCALA_COMPILER}" \
-scala-library "${SCALA_LIBRARY}" &>/dev/null
fi
diff --git a/external/java8-tests/pom.xml b/external/java8-tests/pom.xml
index 60e3ff60df..74a3ee1ce1 100644
--- a/external/java8-tests/pom.xml
+++ b/external/java8-tests/pom.xml
@@ -106,6 +106,7 @@
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<configuration>
+ <useZincServer>${useZincForJdk8}</useZincServer>
<javacArgs>
<javacArg>-source</javacArg>
<javacArg>1.8</javacArg>
diff --git a/pom.xml b/pom.xml
index fff5560afe..60c8c8dc7a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -184,6 +184,9 @@
<test.java.home>${java.home}</test.java.home>
<test.exclude.tags></test.exclude.tags>
+ <!-- When using different JDKs for the build, we can't use Zinc for the jdk8 part. -->
+ <useZincForJdk8>true</useZincForJdk8>
+
<!-- Package to use when relocating shaded classes. -->
<spark.shade.packageName>org.spark_project</spark.shade.packageName>
@@ -2577,6 +2580,42 @@
</profile>
<profile>
+ <id>java7</id>
+ <activation>
+ <property><name>env.JAVA_7_HOME</name></property>
+ </activation>
+ <properties>
+ <useZincForJdk8>false</useZincForJdk8>
+ </properties>
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <compilerArgs combine.children="append">
+ <arg>-bootclasspath</arg>
+ <arg>${env.JAVA_7_HOME}/jre/lib/rt.jar</arg>
+ </compilerArgs>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>net.alchim31.maven</groupId>
+ <artifactId>scala-maven-plugin</artifactId>
+ <configuration>
+ <args combine.children="append">
+ <arg>-javabootclasspath</arg>
+ <arg>${env.JAVA_7_HOME}/jre/lib/rt.jar</arg>
+ </args>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ </profile>
+
+ <profile>
<id>scala-2.11</id>
<activation>
<property><name>!scala-2.10</name></property>
diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala
index f08ca7001f..744f57c517 100644
--- a/project/SparkBuild.scala
+++ b/project/SparkBuild.scala
@@ -277,12 +277,24 @@ object SparkBuild extends PomBuild {
// additional discussion and explanation.
javacOptions in (Compile, compile) ++= Seq(
"-target", javacJVMVersion.value
- ),
+ ) ++ sys.env.get("JAVA_7_HOME").toSeq.flatMap { jdk7 =>
+ if (javacJVMVersion.value == "1.7") {
+ Seq("-bootclasspath", s"$jdk7/jre/lib/rt.jar")
+ } else {
+ Nil
+ }
+ },
scalacOptions in Compile ++= Seq(
s"-target:jvm-${scalacJVMVersion.value}",
"-sourcepath", (baseDirectory in ThisBuild).value.getAbsolutePath // Required for relative source links in scaladoc
- ),
+ ) ++ sys.env.get("JAVA_7_HOME").toSeq.flatMap { jdk7 =>
+ if (javacJVMVersion.value == "1.7") {
+ Seq("-javabootclasspath", s"$jdk7/jre/lib/rt.jar")
+ } else {
+ Nil
+ }
+ },
// Implements -Xfatal-warnings, ignoring deprecation warnings.
// Code snippet taken from https://issues.scala-lang.org/browse/SI-8410.