diff options
-rw-r--r-- | core/pom.xml | 1 | ||||
-rw-r--r-- | pom.xml | 68 | ||||
-rw-r--r-- | project/SparkBuild.scala | 32 | ||||
-rw-r--r-- | sql/core/pom.xml | 2 | ||||
-rw-r--r-- | tools/pom.xml | 2 |
5 files changed, 82 insertions, 23 deletions
diff --git a/core/pom.xml b/core/pom.xml index 4c7e3a3662..7349ad35b9 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -192,7 +192,6 @@ <dependency> <groupId>org.json4s</groupId> <artifactId>json4s-jackson_${scala.binary.version}</artifactId> - <version>3.2.10</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> @@ -93,7 +93,10 @@ <module>common/tags</module> <module>core</module> <module>graphx</module> - <module>mllib</module> + <!-- Note: the ML and Kafka modules would typically be defined here, but because their + dependencies are not 2.12-ready we need to conditionally enable those modules via the + 2.11 and 2.10 build profiles --> + <!-- <module>mllib</module> --> <module>tools</module> <module>streaming</module> <module>sql/catalyst</module> @@ -107,8 +110,8 @@ <module>examples</module> <module>repl</module> <module>launcher</module> - <module>external/kafka</module> - <module>external/kafka-assembly</module> + <!-- <module>external/kafka</module> --> + <!-- <module>external/kafka-assembly</module> --> </modules> <properties> @@ -162,6 +165,7 @@ <jline.groupid>org.scala-lang</jline.groupid> <codehaus.jackson.version>1.9.13</codehaus.jackson.version> <fasterxml.jackson.version>2.5.3</fasterxml.jackson.version> + <fasterxml.jackson.scala.version>2.5.3</fasterxml.jackson.scala.version> <snappy.version>1.1.2.1</snappy.version> <netlib.java.version>1.1.2</netlib.java.version> <calcite.version>1.2.0-incubating</calcite.version> @@ -178,6 +182,7 @@ <jsr305.version>1.3.9</jsr305.version> <libthrift.version>0.9.2</libthrift.version> <antlr.version>3.5.2</antlr.version> + <json4s.version>3.2.2</json4s.version> <test.java.home>${java.home}</test.java.home> <test.exclude.tags></test.exclude.tags> @@ -584,7 +589,7 @@ <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-scala_${scala.binary.version}</artifactId> - <version>${fasterxml.jackson.version}</version> + <version>${fasterxml.jackson.scala.version}</version> <exclusions> <exclusion> <groupId>com.google.guava</groupId> @@ -593,6 +598,11 @@ </exclusions> </dependency> <dependency> + <groupId>org.json4s</groupId> + <artifactId>json4s-jackson_${scala.binary.version}</artifactId> + <version>${json4s.version}</version> + </dependency> + <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>${jersey.version}</version> @@ -2449,6 +2459,13 @@ <jline.version>${scala.version}</jline.version> <jline.groupid>org.scala-lang</jline.groupid> </properties> + <!-- TODO: remove these from here and always enable them in root POM once these modules' + dependencies are 2.12-ready --> + <modules> + <module>mllib</module> + <module>external/kafka</module> + <module>external/kafka-assembly</module> + </modules> <dependencyManagement> <dependencies> <dependency> @@ -2461,23 +2478,52 @@ </profile> <profile> - <id>test-java-home</id> + <id>scala-2.11</id> + <!-- Note: this profile has no activation because it only serves to document the build's + defaults, which use Scala 2.11. The properties here should be kept in sync with the + build's default settings, which are defined at the top of this root POM. --> + <!-- UPDATE: for now, we need to alwass explicitl pass -Dscala-2.11 for 2.11 builds --> <activation> - <property><name>env.JAVA_HOME</name></property> + <property><name>scala-2.11</name></property> </activation> <properties> - <test.java.home>${env.JAVA_HOME}</test.java.home> + <scala.version>2.11.7</scala.version> + <scala.binary.version>2.11</scala.binary.version> + </properties> + <!-- TODO: remove these from here and always enable them in root POM once these modules' + dependencies are 2.12-ready --> + <modules> + <module>mllib</module> + <module>external/kafka</module> + <module>external/kafka-assembly</module> + </modules> + </profile> + + <profile> + <id>scala-2.12</id> + <activation> + <property><name>scala-2.12</name></property> + </activation> + <properties> + <scala.version>2.12.0-M4</scala.version> + <scala.binary.version>2.12.0-M4</scala.binary.version> + <!-- This corresponds to https://github.com/twitter/chill/pull/253 --> + <chill.version>0.8.1-SNAPSHOT</chill.version> + <!-- This corresponds to https://github.com/FasterXML/jackson-module-scala/pull/247 --> + <fasterxml.jackson.scala.version>2.7.3-SNAPSHOT</fasterxml.jackson.scala.version> + <fasterxml.jackson.version>2.7.0</fasterxml.jackson.version> + <!-- This corresponds to https://github.com/JoshRosen/json4s/tree/scala-2.12.0-m4 --> + <json4s.version>3.4.0-SNAPSHOT</json4s.version> </properties> </profile> <profile> - <id>scala-2.11</id> + <id>test-java-home</id> <activation> - <property><name>!scala-2.10</name></property> + <property><name>env.JAVA_HOME</name></property> </activation> <properties> - <scala.version>2.11.7</scala.version> - <scala.binary.version>2.11</scala.binary.version> + <test.java.home>${env.JAVA_HOME}</test.java.home> </properties> </profile> diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala index fb229b979d..6c10d740f7 100644 --- a/project/SparkBuild.scala +++ b/project/SparkBuild.scala @@ -124,6 +124,8 @@ object SparkBuild extends PomBuild { // in the same way as Maven which handles -Dname as -Dname=true before executes build process. // see: https://github.com/apache/maven/blob/maven-3.0.4/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java#L1082 System.setProperty("scala-2.10", "true") + } else if (System.getProperty("scala-2.12") == "") { + System.setProperty("scala-2.12", "true") } profiles } @@ -139,10 +141,17 @@ object SparkBuild extends PomBuild { lazy val MavenCompile = config("m2r") extend(Compile) lazy val publishLocalBoth = TaskKey[Unit]("publish-local", "publish local for m2 and ivy") - lazy val sparkGenjavadocSettings: Seq[sbt.Def.Setting[_]] = Seq( - libraryDependencies += compilerPlugin( - "org.spark-project" %% "genjavadoc-plugin" % unidocGenjavadocVersion.value cross CrossVersion.full), - scalacOptions <+= target.map(t => "-P:genjavadoc:out=" + (t / "java"))) + lazy val sparkGenjavadocSettings: Seq[sbt.Def.Setting[_]] = { + if (System.getProperty("scala-2.12") != null) { + // TODO: re-enable once our custom genjavadoc is published for 2.12 (see SPARK-14511). + Seq.empty + } else { + Seq( + libraryDependencies += compilerPlugin( + "org.spark-project" %% "genjavadoc-plugin" % unidocGenjavadocVersion.value cross CrossVersion.full), + scalacOptions <+= target.map(t => "-P:genjavadoc:out=" + (t / "java"))) + } + } lazy val sharedSettings = sparkGenjavadocSettings ++ Seq ( exportJars in Compile := true, @@ -248,11 +257,16 @@ object SparkBuild extends PomBuild { /* Enable tests settings for all projects except examples, assembly and tools */ (allProjects ++ optionallyEnabledProjects).foreach(enable(TestSettings.settings)) - val mimaProjects = allProjects.filterNot { x => - Seq( - spark, hive, hiveThriftServer, catalyst, repl, networkCommon, networkShuffle, networkYarn, - unsafe, testTags, sketch - ).contains(x) + // TODO: remove this conditional after Spark publishes with 2.12 support: + lazy val mimaProjects = if (System.getProperty("scala-2.12") == null) { + allProjects.filterNot { x => + Seq( + spark, hive, hiveThriftServer, catalyst, repl, networkCommon, networkShuffle, networkYarn, + unsafe, testTags, sketch + ).contains(x) + } + } else { + Seq.empty } mimaProjects.foreach { x => diff --git a/sql/core/pom.xml b/sql/core/pom.xml index 708670b292..f347a9929c 100644 --- a/sql/core/pom.xml +++ b/sql/core/pom.xml @@ -44,7 +44,7 @@ </dependency> <dependency> <groupId>org.apache.spark</groupId> - <artifactId>spark-sketch_2.11</artifactId> + <artifactId>spark-sketch_${scala.binary.version}</artifactId> <version>${project.version}</version> </dependency> <dependency> diff --git a/tools/pom.xml b/tools/pom.xml index 9bb20e1381..9b94b6d823 100644 --- a/tools/pom.xml +++ b/tools/pom.xml @@ -45,7 +45,7 @@ <dependency> <groupId>org.clapper</groupId> <artifactId>classutil_${scala.binary.version}</artifactId> - <version>1.0.6</version> + <version>1.0.8</version> </dependency> </dependencies> |