java storm spark_Storm Spark Scala 混合代码快速编译打包jar方式,然后java风格使用(朋友咨询)...

上一章 我讲了 Slope One 补充的一种数据推荐方式 ,虽然贴出了 很多代码 ,但是网友向我反映 他不会scala 问我 那些打包 怎么实现 。我这里 就补充一下  常用的一些打包的方式。 我使用的是Maven方式 ,至于你们是gradle 也是一样的,换汤不换药。

1.Storm 打包方式 jar

storm jar xxxxx.jar 提交 时候需要一个全依赖的jar 如果有时候storm lib自带了就不需要了 不过我建议 使用全依赖的jar 把所有的依赖打到jar中去 这样 不会出问题。

首先 配置插件

在pom文件中配置 assembly 打包插件

maven-assembly-plugin

com.zsuper.RealEffectTopologyMain

jar-with-dependencies

com.zsuper.RealEffectTopologyMain 这是配置jar 运行的main主入口

9266ebb8bc086dca63a02a6ee3509abc.png

下面运行

mvn assembly:assembly

其实 我开发时候 用的编辑器 是myeclipse 以及 idea  都用 其实都有各自的优点 ,我一般 喜欢两个切换的用。 感觉都很棒,idea 强大 在debug 调试 自动提示方面 。myeclipse 强大在于 可以优雅的对比 项目管理方面

这里就贴idea的截图吧

记不住 assembly:assembly 也没事 idea 会显示插件的命令 邮件运行 就可以了

ef07a96df6af425b29016ad985e98b98.png

运行打包后 就会生产 一个 依赖打入的jar 一个 没有打入依赖的jar 一般 用依赖打入的jar 这样不会出问题,不过有些依赖都有的环境 就用 没有打入依赖的jar包

6b92a6d18836271adcf02a2c633e97e8.png

2.Spark 纯粹jar的打包 ,可以直接使用上面的也可以。也可以使用下面的。

不过我这里补充一种方式,比上面的assembly 插件更加灵活的方式

就是apache shade 插件 使用方式 一样的 shade:shade 重复的名字

org.apache.maven.plugins

maven-shade-plugin

false

package

shade

d18dd4a8f8e2f8520caa504a0cb46852.png

3.Spark 中 含有scala java 混合代码的打包jar

首先pom中引入scala编译打包的jar

为什么 要使用它呢。,1.不需要配置sbt 以及 sbt lancher 2,不要下下载安装scala环境 以及各类版本问题  3.可以方便调试使用scala

就是引入         scala maven 插件

这里 贴出几个很重要的 命令 ,很方便 用来 下载网络上spark的scala写的包 然后调试 打包

是不是比sbt 要简单啊

9870e3f7a578673e0a6605f0667b559c.png

64094a794ea87f9275bc4fcc725c7198.png

1fca7c48f1db8bf8c36721ab58486f4f.png

下面贴出完整代码 :

net.alchim31.maven

scala-maven-plugin

scala-compile-first

process-resources

add-source

compile

org.apache.maven.plugins

maven-compiler-plugin

compile

compile

1.7

1.7

1.7

UTF-8

org.apache.maven.plugins

maven-shade-plugin

false

package

shade

然后执行mvn package 即可,因为我们 goal生命周期 package 加入了shade 里面了 ,所以会执行compile 编译java 以及 scala 然后使用shade 打包 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值