分享

sbt assembly打包问题

想使用assembly打包,一直提示找不到编写的类,请求高手指点一下啊

已有(6)人评论

跳转到指定楼层
wander669 发表于 2014-11-9 20:09:42

sbt 插件打包问题

想使用assembly打包,一直提示找不到编写的类,请求高手指点一下啊
回复

使用道具 举报

bioger_hit 发表于 2014-11-9 20:20:16
列出具体报错信息,都做了什么操作,提供的信息越详细,问题定位越准确。
回复

使用道具 举报

wander669 发表于 2014-11-9 20:35:42
bioger_hit 发表于 2014-11-9 20:20
列出具体报错信息,都做了什么操作,提供的信息越详细,问题定位越准确。

[error] (*:assembly) deduplicate: different file contents found in the following:
[error] /var/lib/hadoop-hdfs/.ivy2/cache/org.eclipse.jetty.orbit/javax.transaction/orbits/javax.transaction-1.1.1.v201105210645.jar:META-INF/ECLIPSEF.RSA
[error] /var/lib/hadoop-hdfs/.ivy2/cache/org.eclipse.jetty.orbit/javax.servlet/orbits/javax.servlet-3.0.0.v201112011016.jar:META-INF/ECLIPSEF.RSA
[error] /var/lib/hadoop-hdfs/.ivy2/cache/org.eclipse.jetty.orbit/javax.mail.glassfish/orbits/javax.mail.glassfish-1.4.1.v201005082020.jar:META-INF/ECLIPSEF.RSA
[error] /var/lib/hadoop-hdfs/.ivy2/cache/org.eclipse.jetty.orbit/javax.activation/orbits/javax.activation-1.1.0.v201105071233.jar:META-INF/ECLIPSEF.RSA
[error] Total time: 6 s, completed 2014-11-9 20:34:30


回复

使用道具 举报

wander669 发表于 2014-11-9 20:39:04
bioger_hit 发表于 2014-11-9 20:20
列出具体报错信息,都做了什么操作,提供的信息越详细,问题定位越准确。

For sbt 0.13 add sbt-assembly as a dependency in project/assembly.sbt:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")

Put assembly.sbt at the root directory:
import AssemblyKeys._ // put this at the top of the fileassemblySettings


关于assembly就配了这两个文件



回复

使用道具 举报

wander669 发表于 2014-11-9 20:40:44
bioger_hit 发表于 2014-11-9 20:20
列出具体报错信息,都做了什么操作,提供的信息越详细,问题定位越准确。

[hdfs@s03 mycase]$ ll
总用量 20
-rw-rw-r-- 1 hdfs hdfs   75 11月  9 20:31 assembly.sbt
drwxrwxr-x 4 hdfs hdfs 4096 11月  9 20:34 project
-rw-rw-r-- 1 hdfs hdfs  139 11月  9 20:31 simple.sbt
drwxrwxr-x 4 hdfs hdfs 4096 11月  9 20:27 src
drwxrwxr-x 5 hdfs hdfs 4096 11月  9 20:34 target
[hdfs@s03 mycase]$ cat assembly.sbt
import AssemblyKeys._ // put this at the top of the file

assemblySettings
[hdfs@s03 mycase]$ cat simple.sbt
name := "Simple Project"

version := "1.0"

scalaVersion := "2.10.4"

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.1.0"

[hdfs@s03 mycase]$ cat project/assembly.sbt
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")


回复

使用道具 举报

bioger_hit 发表于 2014-11-9 21:53:21
还是没有贴出关键的错误信息
sbt编译类似maven,找不到一般有以下几个原因
1.首先保证程序是正确的
这里必须保证在开发环境中,能够运行。
2.上面前提下,检查下环境变量,因为在编译的过程中,可能会涉及到调用系统包,如果环境变量配置不正确,可能就会找不到系统包

比如下面
下载包之后,首先设置环境变量

  1. export SCALA_HOME=/opt/scala/scala-2.10.3
  2. export PATH=$SCALA_HOME/bin:$PATH
复制代码

.built Spark的时候要注意目录

  1. sbt/sbt assembly  #使用此命令需要在工程目录的home下
复制代码




sbt assembly 个人认为是使用的sbt-assembly插件,这个插件的目的是:

可以将当前项目的二进制包以及依赖的所有第三方库都打包成一个jar包发布,即one-jar, 所以当你程序调用第三方包的时候,如果找不到,这时候就会找不到类。


这个环境设置,可以参考

182902_ECGS_131681.jpg



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条