Java Sbt依赖关系管理

Java Sbt依赖关系管理,java,scala,apache-spark,sbt,sbt-assembly,Java,Scala,Apache Spark,Sbt,Sbt Assembly,开始为Spark项目使用Sbt构建工具。我已获得build.sbt,如下所示: name := "spark-first" version := "1.0" scalaVersion := "2.11.8" libraryDependencies ++= Seq( "org.apache.spark" %% "spark-core" % "2.1.0.cloudera1" % "provided", "org.apache.spark" %% "spark-sql" % "2.1.0.cloud

开始为Spark项目使用Sbt构建工具。我已获得build.sbt,如下所示:

name := "spark-first"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.1.0.cloudera1" % "provided",
"org.apache.spark" %% "spark-sql" % "2.1.0.cloudera1" % "provided",
"org.apache.spark" %% "spark-hive" % "2.0.0" % "provided",
"com.github.nscala-time" %% "nscala-time" % "1.6.0",
"com.typesafe" % "config" % "1.3.0",
"com.holdenkarau" %% "spark-testing-base" % "2.3.1_0.10.0" % "test",
"org.apache.spark" %% "spark-hive"  % "2.1.0" % "test",
"io.netty" % "netty" % "3.6.2.Final",
"com.google.guava" % "guava" % "14.0.1",
"org.apache.commons" % "commons-lang3" % "3.8",
"com.typesafe.play" %% "play-json" % "2.7.1"
)
resolvers ++= Seq(
 "cloudera" at "http://repository.cloudera.com/artifactory/cloudera-repos/",
)
parallelExecution in Test := false
fork in Test: = true
javaOptions ++= Seq("-Xms512M", "-Xmx2048M", "-XX:MaxPermSize=2048M", "-XX:+CMSClassUnloadingEnabled")
使用Cmd将目录更改为项目文件夹并运行命令“sbt package”,它在我的项目文件夹下创建了一个目标目录,并创建了一个jar文件,名为spark-first_2.11-1.0.jar,但其依赖项jar是play-functional_2.11-2.7.1.jar,play-json_2.11-2.7.1.jar被放置在C:\Users\sparkuser.ivy2\cache\com.typesafe.play目录中,该目录包含play-functional_2.11\jars和play-json_2.11\jars。我没有找到任何可以自动将play-functional_2.11-2.7.1.jar和play-json_2.11-2.7.1.jar与spark-first_2.11-1.0.jar放在同一个“target”目录中的资源。要做到这一点,需要做哪些改变


提前谢谢大家的帮助

链接到github repo,其中包含有关组件的最新信息。如果你对这个插件有任何特别的问题,请重新设计这个问题,或者问一个新的问题,但是请先检查可能的重复问题。还要记住,Spark将某些依赖项视为提供的
,如果您将作业提交到现有Spark安装,则不必包含所有Spark依赖项。链接到github repo,其中包含有关
程序集的最新信息。如果你对这个插件有任何特别的问题,请重新设计这个问题,或者问一个新的问题,但是请先检查可能的重复问题。还要记住,Spark将某些依赖项视为提供的
,如果您将作业提交给现有Spark安装,则不必包含所有Spark依赖项。