2017-06-20 223 views
0

我正在嘗試使用Twitter流示例項目。定義sbt時我面臨問題。sbt.ResolveException無法解析的依賴關係

我build.sbt

name := "Tutorial" 
version := "0.1.0" 
scalaVersion := "2.11.8" 
retrieveManaged := true 
libraryDependencies ++= Seq(
    "org.apache.spark" % "spark-core" % "2.11.0", 
    "org.apache.spark" % "spark-streaming" % "1.1.0", 
    "org.apache.spark" % "spark-streaming-twitter" % "1.1.0" 
) 

錯誤日誌:

[warn] Note: Some unresolved dependencies have extra attributes. Check that these dependencies exist with the requested attributes. 
[warn]  com.eed3si9n:sbt-assembly:0.9.2 (sbtVersion=0.11.3, scalaVersion=2.11.8) 
[warn]  com.typesafe.sbteclipse:sbteclipse-plugin:2.2.0 (sbtVersion=0.11.3, scalaVersion=2.11.8) 
[warn]  com.github.mpeltonen:sbt-idea:1.5.1 (sbtVersion=0.11.3, scalaVersion=2.11.8) 
[warn] 
[error] {file:/home/muralee1857/scala/workspace/Tutorial/}default-109f4d/*:update: sbt.ResolveException: unresolved dependency: org.apache.spark#spark-core_2.11.8;1.5.1: not found 
[error] unresolved dependency: com.eed3si9n#sbt-assembly;0.9.2: not found 
[error] unresolved dependency: com.typesafe.sbteclipse#sbteclipse-plugin;2.2.0: not found 
[error] unresolved dependency: com.github.mpeltonen#sbt-idea;1.5.1: not found 

回答

1

我建議你明確地定義封裝版本的依賴作爲

libraryDependencies ++= Seq(
    "org.apache.spark" % "spark-core_2.10" % "1.1.0", 
    "org.apache.spark" % "spark-streaming_2.10" % "1.1.0" % "provided", 
    "org.apache.spark" % "spark-streaming-twitter_2.10" % "1.1.0" 
) 

你可以使用%%而不定義packaged version,但會嘗試在您的系統中下載package with scala version。有時sbt將不會找到將造成依賴性問題的scala version packaged packages

0

這應該工作。請注意,我在此處使用%%方法而不是%,以便在此處選擇正確版本的spark庫(scala版本2.11)。確保你將相同的%%功能,其他像SBT組裝插件,SBT組裝等

libraryDependencies ++= Seq(
    "org.apache.spark" %% "spark-core" % "2.11.0", 
    "org.apache.spark" %% "spark-streaming" % "1.1.0", 
    "org.apache.spark" %% "spark-streaming-twitter" % "1.1.0" 
) 
+0

我的問題得到解決,我已經改變了我的Scala編譯器爲2.10後兼容性問題得到了與外部罐子resoled。 –