博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Storm Spark Scala 混合代码快速编译打包jar方式,然后java风格使用(朋友咨询)
阅读量:6280 次
发布时间:2019-06-22

本文共 3694 字,大约阅读时间需要 12 分钟。

hot3.png

                上一章 我讲了 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主入口

   122336_hqIW_937000.jpg

下面运行 

      

mvn assembly:assembly

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

    这里就贴idea的截图吧

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

    122436_HlDJ_937000.jpg

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

  122921_Su8I_937000.jpg

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

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

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

   
org.apache.maven.plugins
   
maven-shade-plugin
   
      
false
         
   
      
         
package
         
            
shade
         
      
   

  123645_xAN8_937000.jpg

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

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

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

              就是引入         scala maven 插件 

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

    是不是比sbt 要简单啊

       

124012_1w9A_937000.jpg

124013_oATT_937000.jpg

124015_veEM_937000.jpg

         下面贴出完整代码 :

                
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 打包 。

   

转载于:https://my.oschina.net/yilian/blog/670786

你可能感兴趣的文章
PHP开发环境之WVL-NMP环境搭建
查看>>
javasimon
查看>>
Java集合(六)List概括,总结
查看>>
python2.7 链接MySQL 在Eclipse PyDev下 windows平台
查看>>
jquery如何判断checkbox(复选框)是否被选中
查看>>
js笔记精华版
查看>>
PLSQL基本结构
查看>>
关于typedef的用法总结
查看>>
Apache用户认证、域名跳转、访问日志格式
查看>>
mwArray类说明
查看>>
CMD命令行:查看 Windows 操作系统的安装时间
查看>>
mysql explain
查看>>
golang交叉编译工具,gox使用入门
查看>>
Redis Master-Slave 读写分离测试
查看>>
git bash常用命令行以及初次接触yo以及bower
查看>>
修改MySQL默认空密码
查看>>
spring mvc访问静态文件(css/js/img)访问不到
查看>>
spring boot框架学习学前掌握之重要注解(1)-sprng的java配置方式
查看>>
plsql 书籍基础表结构
查看>>
nginx 第三方模块 modsecurity安装使用
查看>>