如何配置sbt的build.sbt使得编译时将依赖包也打包进去

如何配置sbt的build.sbt使得编译时将依赖包也打包进去,第1张

首先问题解决了,就是sbt-assembly插件的配置问题。这个文档自己前两次读表示看不懂意思。过2天又仔细看了一遍大致明白了,敢动手 *** 作了。

assembly插件的目的是:

The goal is simple: Create a fat JAR of your project with all of its dependencies.

即将项目依赖的大文件也打包到生成猜扒悄的jar中。我的报错Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/streaming/kafka/KafkaUtils$就是因为包含KafkaUtil的jar包没打包到jar中。

配置使用插件

下面是我的scala项目目录结构:

.

├── assembly.sbt

├── build.sbt

├── project

├── README.md

├── run-assembly.sh

├── run.sh

├── src

└── target

插件的配置取决于sbt的版本,详情见这里

我的是sbt 0.13.8,所以在project/assembly.sbt添加(assembly.sbt)要自己创建:

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.0")

配置assembly的参穗渣数

参数在项目根目录下新建assembly.sbt。

直接引入插件就可以用

sbt assembly

编译了,但是由于我的sbt下载了大量的依赖包,在编译的时候遇到了编译包冲突的问此弯题。这个时候需要配置Merge Strategy(合并策略)

第一步:看pom.xml中有没有引入相关jar包的坐标; 第二步:执行mvn clean compile 命令,看看有没有自动把jar包下到本地maven仓库; 第三部:如果下载不成功,重新孙乎指配置maven镜像,重新执行第二部的顷厅命令 希望对楼主有帮助则配!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12302830.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存