首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用sbt-assembly制作多项目fat jar

如何用sbt-assembly制作多项目fat jar
EN

Stack Overflow用户
提问于 2016-06-02 17:52:18
回答 1查看 1K关注 0票数 2

我有一个使用spark的scala多项目,并尝试使用sbt插件sbt-assembly 0.14.3来制作一个胖jar。我的buils.sbt是这样的:

代码语言:javascript
复制
lazy val commonSettings = Seq(
  organization := "blabla",
  version := "0.1.0",
  scalaVersion := "2.11.8"
)


lazy val core = (project in file("."))
  .settings(commonSettings: _*)
  .settings(libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "1.6.1" % "provided",
"org.apache.spark" %% "spark-sql" % "1.6.1" % "provided",
"org.apache.spark" %% "spark-mllib" % "1.6.1" % "provided",...)


lazy val sub_project = project
  .settings(commonSettings: _*)
  .aggregate(core)
  .dependsOn(core)

我想创建一个sub_project的fat jar,这样这个fat jar就包含了项目核心中的所有库和代码。我尝试了以下几种方法:

代码语言:javascript
复制
sbt
project sub_project
assembly

我得到了以下错误:

代码语言:javascript
复制
[error] missing or invalid dependency detected while loading class file 'blabla.class'.
[error] Could not access term spark in package org.apache,
[error] because it (or its dependencies) are missing. Check your build definition for
[error] missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.)
[error] A full rebuild may help if 'blabla.class' was compiled against an incompatible version of org.apache.
[error] one error found

然而,当我在核心项目上使用"assembly“时,我可以得到我的胖jar。

EN

回答 1

Stack Overflow用户

发布于 2016-06-02 23:00:36

您的构建表明,sub_project的类路径中不存在对Spark的库依赖(与provided语句无关),并且您得到的错误消息与此相匹配。您可能希望将此依赖项添加到通用设置中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37588407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档