前言
storm 是通过jar包的形式发布到拓扑上去,将自己写好的项目打成jar,通过命令提交到storm集群上,记录下使用到的maven插件,可以将额外的相关jar包(例如elastic search的客户端jar包等…)与项目本身进行依赖,同时打进storm的拓扑jar包中。
环境
IDEA
首先本文使用的是IDEA,因为有图形化界面所以很好操作。
Maven
引入下面的依赖:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<!--程序入口,jar的主函数-->
<manifest>
<mainClass>com.xxxx.storm.log.topology.TopologyMain</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<!--去除单元测试类-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
引入好重新在IDEA中 reimport一下 pom.xml文件,否则不会生效。。
然后如下图操作即可:
1、
2、
可以看到,一个是不带外界依赖的jar包,还有一个是带依赖的jar包。