Scala 在intellij的sbt项目中使用spark

Scala 在intellij的sbt项目中使用spark,scala,intellij-idea,apache-spark,sbt,Scala,Intellij Idea,Apache Spark,Sbt,以下是build.sbt文件: name := "scalaChartTest" version := "1.0" scalaVersion := "2.11.7" //libraryDependencies += "org.jfree" % "jfreechart" % "1.0.19" // //libraryDependencies += "org.scalafx" %% "scalafx" % "8.0.0-R4" // //libraryDependencies += "com.

以下是build.sbt文件:

name := "scalaChartTest"

version := "1.0"

scalaVersion := "2.11.7"

//libraryDependencies += "org.jfree" % "jfreechart" % "1.0.19"
//
//libraryDependencies += "org.scalafx" %% "scalafx" % "8.0.0-R4"
//
//libraryDependencies += "com.github.wookietreiber" %% "scala-chart" % "latest.integration"

libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "1.4.1"
刷新后我出现了一个错误:

15:56:30 SBT project import
         [warn] Multiple dependencies with the same organization/name but different versions. To avoid conflict, pick one version:
         [warn]  * org.scala-lang:scala-compiler:(2.11.0, 2.11.7)
         [warn]  * org.scala-lang:scala-reflect:(2.11.2, 2.11.7)
         [warn]  * jline:jline:(0.9.94, 2.12.1)
         [warn]  * org.scala-lang.modules:scala-parser-combinators_2.11:(1.0.1, 1.0.4)
         [warn]  * org.scala-lang.modules:scala-xml_2.11:(1.0.1, 1.0.4)
         [warn]  * org.slf4j:slf4j-api:(1.6.4, 1.7.10)

这里出了什么问题?

您对警告中提到的库有间接依赖关系。存在冲突,因为间接依赖项中的版本与sbt文件中指定的版本不同(在本例中可能是scala版本)。冲突由sbt自动解决(根据您的配置选择其中一个版本)。但是,自动选择的版本可能不是您打算使用的版本,因此会发出警告

在你的情况下,这可能不是一个问题。但是,如果愿意,可以显式排除间接依赖项:

libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "1.4.1" excludeAll (
  ExclusionRule(organization = "org.scala-lang"),
  ExclusionRule("jline", "jline"),
  ExclusionRule("org.slf4j", "slf4j-api")
  )

我从spark编程指南中了解到spark 1.4.1依赖于scala 2.10.x,因此我将build.sbt更改为:

name := "scalaChartTest"

version := "1.0"

scalaVersion := "2.10.5"

libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.4.1"
警告消失了