1. Flink程序打Jar包

news/2024/11/30 20:29:37/

文章目录

      • 步骤
      • 注意事项

步骤

  1. 用 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><transformers combine.children="append"><transformerimplementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"></transformer></transformers></configuration></execution></executions></plugin></plugins></build>
  1. 建议:对导入的依赖添加 scope
    作用:打包时,不将该依赖放入jar包中。
    因为:集群中,一般已经具备任务运行所需的所有依赖。
<!--  举例  -->
<dependency><groupId>org.apache.flink</groupId><artifactId>flink-streaming-java</artifactId><version>${flink.version}</version><!-- 打包时,不将该依赖放入jar包中 --><scope>provided</scope>
</dependency>
  1. 打包前,需要先执行 clean,再执行 package
    如果第2步骤没有添加 scope,那么这两个Jar文件的大小是不一样的。
    在这里插入图片描述

注意事项

  1. 当我们对导入的依赖添加 scope后,IDEA 的程序运行会报错:Caused by: java.lang.ClassNotFoundException xxx
    解决办法:
    在这里插入图片描述
    缺点:每一次新建文件均需打勾勾。
    解决办法:
    添加 application template
    在这里插入图片描述

http://www.ppmy.cn/news/1132316.html

相关文章

方法设计时一定要考虑的几点

文章目录 前言方法的基本要求方法名应该见名知意。方法参数不要太多单个方法不要长 关于参数的校验注意返回值为null的情况谨慎使用重载方法 前言 本文主要针对日常在进行代码review过程中发现的一些关于方法设计上的一些常见问题&#xff0c;改进这些问题能够有效的提升方法的…

Java 21 新特性:Unnamed Classes and Instance Main Methods

Java 21引入了两个语言核心功能&#xff1a; 未命名的Java类你说新的启动协议&#xff1a;该协议允许更简单地运行Java类&#xff0c;并且无需太多样板 下面一起来看个例子。通常&#xff0c;我们初学Java的时候&#xff0c;都会写类似下面这样的 Hello World 程序&#xff1…

多线程和并发编程(6)—并发编程的设计模式

优雅终止 如何优雅终止线程&#xff1f; 中断线程的思路是使用两阶段法&#xff1a;第一阶段发生中断请求&#xff0c;第二阶段根据中断标识结束线程&#xff1b; public class Test1 {private volatile static boolean interrupted false;public static void main(String[…

从 0 到 1 ,手把手教你编写《消息队列》项目(Java实现) —— 介绍项目/ 需求分析

文章目录 一、消息队列是什么&#xff1f;二、需求分析结构解析功能解析规则解析绑定关系交换机类型消息应答 三、持久化存储四、网络通信提供的API复用TCP连接 五、消息队列概念图 一、消息队列是什么&#xff1f; 消息队列 (Message Queue, MQ)就是将阻塞队列这一数据结构提取…

尚硅谷谷粒商城部分报错问题处理

1、启动报错&#xff1a; 内容&#xff1a; org.springframework.beans.factory.BeanCreationException: Error creating bean with name attrAttrgroupRelationController: Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed t…

java复习回顾

文章目录 0 开发工具1. 对象和类、三大特性2. 成员/实例变量和实例变量&#xff08;this关键字&#xff09;3. 方法重载overload4. 构造方法和this关键字5. 继承6. 访问修饰符7. 方法重写8. 继承下的构造执行9. 多态9.1 向上转型9.2 向下转型9.3 多态的应用 0 开发工具 Maven是…

linux入门---信号量

什么是信号量 信号量的本质是一个计数器&#xff0c;通常用来表示公共资源中资源数量多少&#xff0c;公共资源是指可以被多个进程同时访问的资源&#xff0c;访问没有被保护的公共资源时可能出现数据不一致的问题&#xff0c;比如说一个进程对公共资源执行一些写操作&#xf…

ElementUI实现增删改功能以及表单验证

目录 前言 BookList.vue action.js 展示效果 前言 本篇还是在之前的基础上&#xff0c;继续完善功能。上一篇完成了数据表格的查询&#xff0c;这一篇完善增删改&#xff0c;以及表单验证。 BookList.vue <template><div class"books" style"pa…