1 打fat jar
fat jar也叫uber jar,all in one jar,就是把你依赖的其他pom的jar里的class打散、组合,打成一个大jar包。
下述加了一个exclude,即排除所有hadoop的包
更详细的排除规则,可以参考 这里
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <artifactSet> <excludes> <exclude>org.apache.hadoop</exclude> </excludes> </artifactSet> </configuration> </execution> </executions> </plugin> </plugins> </build>
2 设置Main运行
在上面的基础上,添加transfomer
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <artifactSet> <excludes> <exclude>org.apache.hadoop</exclude> </excludes> </artifactSet> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>xx.xx.xx.Main</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build>