diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala index 94e8f0d9b9a9..acfd8549d441 100644 --- a/project/SparkBuild.scala +++ b/project/SparkBuild.scala @@ -290,6 +290,7 @@ object SparkBuild extends PomBuild { lazy val sharedSettings = checkJavaVersionSettings ++ sparkGenjavadocSettings ++ compilerWarningSettings ++ + DependencyVersions.settings ++ (if (noLintOnCompile) Nil else enableScalaStyle) ++ Seq( (Compile / exportJars) := true, (Test / exportJars) := false, @@ -1177,12 +1178,33 @@ object KubernetesIntegrationTests { ) } +object DependencyVersions { + import java.util.Properties + + private lazy val pomProperties = settingKey[Properties]("Effective POM properties") + lazy val jacksonVersion = settingKey[String]("Jackson version") + lazy val jacksonBomModuleID = settingKey[ModuleID]("Jackson BOM Module ID") + lazy val settings = Seq( + pomProperties := SbtPomKeys.effectivePom.value.getProperties, + jacksonVersion := getVersion(pomProperties.value, "fasterxml.jackson"), + jacksonBomModuleID := ModuleID("com.fasterxml.jackson", "jackson-bom", jacksonVersion.value), + ) + + private def getVersionFromPom(pomProperties: Properties, property: String) : String = { + pomProperties.get(property).asInstanceOf[String] + } + + private def getVersion(pomProperties: Properties, property: String) : String = { + val version = property + ".version" + sys.props.get(version).getOrElse(getVersionFromPom(pomProperties, version)) + } +} + /** * Overrides to work around sbt's dependency resolution being different from Maven's. */ object DependencyOverrides { - lazy val jacksonVersion = sys.props.get("fasterxml.jackson.version").getOrElse("2.20.1") - lazy val jacksonDeps = Bom.dependencies("com.fasterxml.jackson" % "jackson-bom" % jacksonVersion) + lazy val jacksonDeps = Bom.dependencies(DependencyVersions.jacksonBomModuleID) lazy val settings = jacksonDeps ++ Seq( dependencyOverrides ++= { val guavaVersion = sys.props.get("guava.version").getOrElse( diff --git a/project/plugins.sbt b/project/plugins.sbt index fe18d16c4822..744abce0054e 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -45,4 +45,4 @@ addSbtPlugin("com.github.sbt.junit" % "sbt-jupiter-interface" % "0.17.0") addSbtPlugin("com.thesamet" % "sbt-protoc" % "1.0.7") -addSbtPlugin("com.here.platform" % "sbt-bom" % "1.0.29") +addSbtPlugin("com.here.platform" % "sbt-bom" % "1.0.31")