文章目录
步骤
- 用 maven 打 jar 包,需要在 pom.xml 文件中添加打包插件依赖
<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>com.google.code.findbugs:jsr305</exclude><exclude>org.slf4j:*</exclude><exclude>log4j:*</exclude></excludes></artifactSet><filters><filter><!-- Do not copy the signatures in the META-INF folder.
Otherwise, this might cause SecurityExceptions when using the JAR. --><artifact>*:*</artifact><excludes><exclude>META-INF/*.SF</exclude><exclude>META-INF/*.DSA</exclude><exclude>META-INF/*.RSA</exclude></excludes></filter></filters><transformerscombine.children="append"><transformerimplementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"></transformer></transformers></configuration></execution></executions></plugin></plugins></build>
- 建议:对导入的依赖添加 scope 作用:打包时,不将该依赖放入jar包中。 因为:集群中,一般已经具备任务运行所需的所有依赖。
<!-- 举例 --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-streaming-java</artifactId><version>${flink.version}</version><!-- 打包时,不将该依赖放入jar包中 --><scope>provided</scope></dependency>
- 打包前,需要先执行 clean,再执行 package 如果第2步骤没有添加 scope,那么这两个Jar文件的大小是不一样的。
注意事项
- 当我们对导入的依赖添加 scope后,IDEA 的程序运行会报错:Caused by: java.lang.ClassNotFoundException xxx 解决办法: 缺点:每一次新建文件均需打勾勾。 解决办法: 添加 application template
本文转载自: https://blog.csdn.net/weixin_43676735/article/details/133468493
版权归原作者 helloooi 所有, 如有侵权,请联系我们删除。
版权归原作者 helloooi 所有, 如有侵权,请联系我们删除。