文章目录
Storm三种打包方式对比分析
一、简介
在将 Storm Topology 提交到服务器集群运行时,需要先将项目进行打包。本文主要对比分析各种打包方式,并将打包过程中需要注意的事项进行说明。主要打包方式有以下三种:
- 第一种:不加任何插件,直接使用 mvn package 打包;
- 第二种:使用 maven-assembly-plugin 插件进行打包;
- 第三种:使用 maven-shade-plugin 进行打包。
以下分别进行详细的说明。
二、mvn package
2.1 mvn package的局限
不在 POM 中配置任何插件,直接使用 mvn package
进行项目打包,这对于没有使用外部依赖包的项目是可行的。
但如果项目中使用了第三方 JAR 包,就会出现问题,因为 mvn package
打包后的 JAR 中是不含有依赖包的,如果此时你提交到服务器上运行,就会出现找不到第三方依赖的异常。
如果你想采用这种方式进行打包,但是又使用了第三方 JAR,有没有解决办法?答案是有的,这一点在官方文档的Command Line Client 章节有所讲解,主要解决办法如下。