Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用sbt程序集为多模块项目创建fat jar_Java_Apache Spark_Sbt_Multi Module_Sbt Assembly - Fatal编程技术网

Java 无法使用sbt程序集为多模块项目创建fat jar

Java 无法使用sbt程序集为多模块项目创建fat jar,java,apache-spark,sbt,multi-module,sbt-assembly,Java,Apache Spark,Sbt,Multi Module,Sbt Assembly,我已将assembly.sbt文件添加到我的项目文件夹中。我没有在任何模块中保存任何sbt文件。 我没有得到任何可能导致解决方案的错误。此外,它是一个用Java编写的Spark代码。 运行sbt程序集时出现以下错误:- [error] Not a valid command: assembly [error] Not a valid project ID: assembly [error] Expected ':' (if selecting a configuration) [error] N

我已将assembly.sbt文件添加到我的项目文件夹中。我没有在任何模块中保存任何sbt文件。 我没有得到任何可能导致解决方案的错误。此外,它是一个用Java编写的Spark代码。 运行sbt程序集时出现以下错误:-

[error] Not a valid command: assembly
[error] Not a valid project ID: assembly
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: assembly
[error] assembly
当我运行sbt包时,它只使用META-INF创建空JAR

这是我的build.sbt文件:-

lazy val commonSettings = Seq(
  version := "1.0",
  scalaVersion := "2.10.5",
  ivyScala := ivyScala.value map { _.copy(overrideScalaVersion = true) },
  compile in Compile := inc.Analysis.Empty,
  organization := "com.service.main",
)
  libraryDependencies ++= Seq(
    "com.google.code.gson" % "gson" % "2.3.1",
    "org.apache.spark" % "spark-core_2.10" % "1.5.2",
    "org.apache.spark" % "spark-sql_2.10" % "1.5.2",
    "org.apache.spark" % "spark-streaming_2.10" % "1.5.2",
    "org.apache.spark" % "spark-streaming-kafka_2.10" % "1.5.2",
    "com.databricks" % "spark-csv_2.10" % "1.3.0",
    "org.codehaus.janino" % "janino" % "2.7.8",
    "it.unimi.dsi" % "fastutil" % "7.0.6",
    "org.reflections" % "reflections" % "0.9.10",
    "org.elasticsearch" % "elasticsearch-spark_2.10" % "2.1.1",
    "junit" % "junit" % "4.8.1"
    //  "org.elasticsearch" % "elasticsearch-hadoop" % "2.1.1",
    //  "org.apache.kafka" % "kafka"  % "0.8.2.0" exclude("log4j", "log4j") exclude("org.slf4j","slf4j-log4j12")
  )
  resolvers ++= Seq(
    "Apache repo" at "https://repository.apache.org/content/repositories/releases",
    "Cloudera Repository" at "https://repository.cloudera.com/artifactory/cloudera-repos/",
    "Akka Repository" at "http://repo.akka.io/releases/",
    "Apache HBase" at "https://repository.apache.org/content/repositories/releases",
    "scala-tools" at "https://oss.sonatype.org/content/groups/scala-tools",
    "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/",
    "Second Typesafe repo" at "http://repo.typesafe.com/typesafe/maven-releases/",
    "Mesosphere Public Repository" at "http://downloads.mesosphere.io/maven",
    Resolver.sonatypeRepo("public")
  )


lazy val root = project.in(file("."))
  .aggregate(core,common,provider,ooxp,model)
  .settings(commonSettings: _*)
  .settings(
    name := "compute-engine"
  )
  .dependsOn(core)
  .dependsOn(common)
  .dependsOn(model)
  .dependsOn(provider)
  .dependsOn(ooxp)

lazy val core = project.in(file("core"))
  .settings(commonSettings: _*)
  .settings(
    name := "core"
  )
  .dependsOn(provider)
  .dependsOn(common)

lazy val diff = project.in(file("diff"))
  .settings(commonSettings: _*)
  .settings(
    name := "diff"
  )
  .dependsOn(provider)
  .dependsOn(common)

lazy val provider = project.in(file("provider"))
  .settings(commonSettings: _*)
  .settings(
    name := "providers"
  )
  .dependsOn(ooxp)
  .dependsOn(model)
  .dependsOn(common)

lazy val ooxp = project.in(file("ooxp"))
  .settings(commonSettings: _*)
  .settings(
    name := "ooxp"
  )
  .dependsOn(model)
  .dependsOn(common)

lazy val model = project.in(file("model"))
  .settings(commonSettings: _*)
  .settings(
    name := "model"
  )
  .dependsOn(common)

lazy val common = project.in(file("common"))
  .settings(commonSettings: _*)
  .settings(
    name := "common"
  )

您需要添加sbt组装插件

在这里结账


或者您可以在此处检查是否存在可能的副本:

也许它应该是build.sbt而不是build.sbt?文件名为build.sbt。这是我在写问题时犯的错误。我在项目文件夹中有assembly.sbt,其中有一行:-addSbtPlugin(“com.eed3si9n”%”sbt assembly“%”0.14.1),因此,添加了插件。另外,由于它是一个自动插件,我的理解是不需要显式地启用它。