【问题标题】:running sbt assembly in intellij在 intellij 中运行 sbt 程序集
【发布时间】:2015-01-04 11:14:51
【问题描述】:

我是 scala 和 sbt 的新手,在 intellij 中运行项目时遇到问题。这是我尝试导入 intellij 的示例项目。

https://github.com/snowplow/spark-example-project

如果我从命令行运行 sbt 汇编命令,它工作正常,但如果我尝试在 intellij 中创建“应用程序”运行配置,我会在其依赖项中收到错误:Caused by: java.lang.ClassNotFoundException: org. apache.hadoop.util.Tool

如何在 intellij 中运行和调试 sbt 项目?

【问题讨论】:

    标签: intellij-idea sbt


    【解决方案1】:

    是的,让 spark 在 Intellij 中运行是一个挑战:关于如何做到这一点的“答案”会根据 spark 版本以及您是否正在运行 master 而改变。

    最好的选择是:

    • “导入项目”,然后导航到 spark_home 目录。
    • 选择“sbt 项目”(或者如果您更喜欢“maven 项目”)
    • 您应该能够使用默认值的其余选项。

    警告:这个过程从 2015 年初开始在 master 中运行 - 并且在 2015 年 3 月中旬发布的 1.3.0 分支中运行。

    以前,在导入完成后,Intellij 项目/模块需要进行一些相关的手术。

    【讨论】:

      【解决方案2】:

      重要的部分是让你的依赖关系正确。

      我喜欢创建一个 lib 文件夹并将我的 spark 文件放在那里,例如

      在库中:

      spark-streaming_2.10-2.1.0.jar
      
      spark-sql_2.10-2.1.0.jar
      
      spark-core_2.10-2.1.0.jar
      

      然后是我的 sbt 文件:

      name := "Project_Name"
      
      version := "1.0"
      
      scalaVersion := "2.10.6"
      retrieveManaged := true
      
      // https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10
      libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "2.1.0"
      // https://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.10
      libraryDependencies += "org.apache.spark" % "spark-sql_2.10" % "2.1.0"
      // https://mvnrepository.com/artifact/org.apache.spark/spark-streaming_2.10
      libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "2.1.0" % "provided"
      

      如您所见,我强烈建议您从 https://mvnrepository.com 获取 .jar 和粘贴在 sbt 文件中的字符串

      另外,请查看 jar 文件版本。它们应该是相同的(在我的例子中是 2.10-2.1.0)

      【讨论】:

        猜你喜欢
        • 2017-10-17
        • 2017-02-25
        • 1970-01-01
        • 1970-01-01
        • 2017-01-27
        • 2019-10-26
        • 2014-11-02
        • 1970-01-01
        • 2014-04-12
        相关资源
        最近更新 更多