JAVA IDEA 项目打包为 jar 包详解
前言
如下简单 maven 项目,现在 maven 项目比较流行,你还没用过就OUT了。需要打包jar
先设置:点击 File ==> Project Structure ==> Artifacts ==> 点击加号 ==> 选择JAR ==> 选择From modules with dependencies
一、将所有依赖和模块代码打包为一个jar
如果把所有项目依赖的其他库和代码打成一个 jar,可以选择extract to the target JAR 。比如如果你项目里依赖了 fastjson.jar 等第三方 jar,可以把这些第三方 jar 也打到最终生成的 jar 里面。
1.选择要打包的模块和启动类,然后选择 extract to the target JAR 。
最后点击 ok 设置完毕
2.确认要生成的 jar 名称(默认是项目或模块名),确认 jar 包的输出的目录,确认最终输出的 jar 里包含的依赖(我这里包含了14个其他依赖和项目代码,如果不想包含第三方依赖可以选中相关依赖点击减号进行排除),点击 Apply 和 Ok
3 . 点击 Build ==> Build Artifacts
先点击 clear 进行清除,然后再点击 Build 进行构建,就可以打成一个jar包了
(如果不点击 clear 进行清理上次的构建,直接点击Build 进行构建的话,可能会把上次构建的东西打进去导致 jar 包变得比较大)
4.构建打包提示成功后就可以在输出目录里找到打好的 jar 包了
二、只将模块代码打包为一个jar
如果你不想把所有项目依赖的其他库和代码都打成一个 jar,可以选择copy to the output directory and link via manifest 。比如,如果你项目里依赖了 fastjson.jar 等第三方 jar,这些第三方 jar 不会被打到最终生成的jar里面,只会把这些依赖的 jar 和最终生成的 jar 输出到一个目录下。
1.先选择你要打包的模块和启动类,然后选择copy to the output directory and link via manifest ,点击ok
2.确认要生成的 jar 名称(默认是项目或模块名),确认 jar 包的输出的目录,确认项目使用到的依赖,点击 Apply 和 Ok
3.点击 Build ==> Build Artifacts
一般先点击 clear 进行清除,然后再点击 Build 进行构建,就可以打成一个 jar 包了
(如果不点击 clear 进行清理上次的构建,直接点击Build 进行构建的话,可能会把上次构建的东西打进去导致 jar 包变得比较大)
4.构建打包提示成功后就可以在输出目录里找到打好的 jar 包了,另外项目依赖的其他 jar 包也会输出到这个目录
三、也可以采用其他方法打包
上面的方式是使用 java通行编辑器 IDEA 来打包,如果你使用的是 maven 项目,你也可以使用其他插件来打包。可以使用 spring-boot-maven-plugin 插件打包,还有maven-dependency-plugin、maven-shade-plugin、maven-assembly-plugin等插件也可以打包。
使用 spring-boot-maven-plugin 插件打包: 在 pom.xml 中的 build 标签下的 plugins 标签下加入如下配置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.0.1-SNAPSHOT</version>
<configuration>
<mainClass>com.example.cipherdemo</mainClass>
<finalName>test</finalName>
<includes>
<include>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
mainClass 标签里是你的项目的启动类的包路径,如果你的项目没有有启动类也不需要通过 java -jar 运行的话可以删除 mainClass
finalName 标签里的就是打出来的 jar 名,我这里是 XTool ,最终生成的就是 XTool.jar 。若不使用 finalName 指定,则打包生成的 jar 包名默认使用 pom.xml 文件里 artifactId 标签和 version 标签里的值作为 jar 的名。
如果最终生成的 jar 包不包含第三方依赖那直接用上面的插件配置即可。如果希望最终生成的 jar 包里包含第三方依赖那就删除 includes 标签及其里面的内容
在 IDEA 右边侧边栏的 Maven 选项卡里点击 Lifecyle 下的 package 就可以开始打包了, 最终生成的 jar 包就在 target 目录下
JAR包使用:不用配置apache环境
相关文章:

JAVA IDEA 项目打包为 jar 包详解
前言 如下简单 maven 项目,现在 maven 项目比较流行,你还没用过就OUT了。需要打包jar 先设置:点击 File > Project Structure > Artifacts > 点击加号 > 选择JAR > 选择From modules with dependencies 一、将所有依赖和模…...

概率基础——几何分布
概率基础——几何分布 介绍 在统计学中,几何分布是描述了在一系列独立同分布的伯努利试验中,第一次成功所需的试验次数的概率分布。在连续抛掷硬币的试验中,每次抛掷结果为正面向上的概率为 p p p,反面向上的概率为 1 − p 1-p …...

JavaScript的内存管理与垃圾回收
前言 JavaScript提供了高效的内存管理机制,它的垃圾回收功能是自动的。在我们创建新对象、函数、原始类型和变量时,所有这些编程元素都会占用内存。那么JavaScript是如何管理这些元素并在它们不再使用时清理它们的呢? 在本节中,…...

Neo4j导入数据之JAVA JDBC
目录结构 前言设置neo4j外部访问代码整理maven 依赖java 代码 参考链接 前言 公司需要获取neo4j数据库内容进行数据筛查,neo4j数据库咱也是头一次基础,辛辛苦苦安装好整理了安装neo4j的步骤,如今又遇到数据不知道怎么创建,关关难…...
LeetCode 2878.获取DataFrame的大小
DataFrame players: ------------------- | Column Name | Type | ------------------- | player_id | int | | name | object | | age | int | | position | object | | … | … | ------------------- 编写一个解决方案,计算并显示 players 的 行数和列数。 将结…...
索引失效的 12 种情况
目录 一、未使用索引字段进行查询 二、索引列使用了函数或表达式 三、使用了不等于(! 或 <>)操作符 四、LIKE 操作符的模糊查询 五、对索引列进行了数据类型转换 六、使用 OR 连接多个条件 七、表中数据量较少 八、索引列上存在大量重复值…...

Spring及工厂模式概述
文章目录 Spring 身世什么是 Spring什么是设计模式工厂设计模式什么是工厂设计模式简单的工厂设计模式通用的工厂设计 总结 在 Spring 框架出现之前,Java 开发者使用的主要是传统的 Java EE(Java Enterprise Edition)平台。Java EE 是一套用于…...

运维SRE-19 网站Web中间件服务-http-nginx
Ans自动化流程 1.网站集群核心协议:HTTP 1.1概述 web服务:网站服务,网站协议即可. 协议:http协议,https协议 服务:Nginx服务,Tengine服务....1.2 HTTP协议 http超文本传输协议,负责数据在网站…...
C语言—自定义(构造)类型
2.20,17.56 1.只有当我们使用结构体类型定义变量/结构体数组,系统才会为结构体的成员分配内存空间,用于存储对应类型的数据 2.strct 结构体 一起作为结构体类型标识符 嘿嘿暂时先这样,我会回来改的1、定义一个表示公交线路的结构体,要…...

ArcgisForJS如何实现添加含图片样式的点要素?
文章目录 0.引言1.加载底图2.获取点要素的坐标3.添加含图片样式的几何要素4.完整实现 0.引言 ArcGIS API for JavaScript 是一个用于在Web和移动应用程序中创建交互式地图和地理空间分析应用的库。本文在ArcGIS For JavaScript中使用Graphic对象来创建包含图片样式的点要素。 …...

C#之WPF学习之路(2)
目录 控件的父类 DispatcherObject类 DependencyObject类 DependencyObject 类的关键成员和方法 Visual类 Visual 类的主要成员和方法 UIElement类 UIElement 类的主要成员和功能 FrameworkElement类 FrameworkElement 类的主要成员和功能 控件的父类 在 WPF (Windo…...

胶原抗体诱导小鼠关节炎模型
胶原诱导性关节炎小鼠(CIA)作为人类类风湿关节炎模型应用广泛,但CIA引起的关节炎起病比较缓慢,造模周期较长,一般为6-8周(1-12)。Chondrex公司已开发出单一种单克隆抗体合剂诱导的小鼠关节炎模型(CAIA),明显缩短了造模…...

集百家所长的开放世界游戏,艾尔莎H311-PRO带你玩转《幻兽帕鲁》
随着近几年开放世界游戏热潮的兴起,如今这类游戏可以说是像雨后春笋般不断推出,比如《幻兽帕鲁》就是近期非常火热的一个代表,它不仅集合了生存、建造、宠物养成等多种元素,而且可爱的卡通画风格更是老少皆宜。那么,这…...

机器人内部传感器阅读笔记及心得-位置传感器-旋转变压器、激光干涉式编码器
旋转变压器 旋转变压器是一种输出电压随转角变化的检测装置,是用来检测角位移的,其基本结构与交流绕线式异步电动机相似,由定子和转子组成。 旋转变压器的原理如图1所示,定子相当于变压器的一次侧,有两组在空间位置上…...
深度学习的学习笔记帖子2
人脸数据集的介绍: https://zhuanlan.zhihu.com/p/362356480 https://blog.csdn.net/bjbz_cxy/article/details/122210641 CASIAWebFace人脸数据集等的github: https://github.com/deepinsight/insightface/blob/master/recognition/datasets/README.md…...
【机器学习学习脉络】
机器学习学习脉络 基础知识 数学基础 线性代数概率论与数理统计微积分最优化理论 编程基础 Python编程语言数据结构与算法软件工程原则 计算机科学基础 操作系统网络通信数据库系统 机器学习概论 定义与发展历程机器学习的主要任务和应用领域基本术语和概念 监督学习 线…...
golang命令行工具gtcli,实现了完美集成与结构化的gin脚手架,gin-restful-api开箱即用
关于gtools golang非常奈斯,gin作为web框架也非常奈斯,但我们在开发过程中,前期搭建会花费大量的时间,且还不尽人意。 为此我集成了gin-restful-api的模板gin-layout,还有脚手架一键生成项目。 集成相关 ginviperz…...

Qt 事件
1. 事件 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。在Qt中使用一个对象来表示一个事件,它继承自QEvent类。 2. 事件和信号 事件与信号并不相同,比如我们使用鼠标点击了一下界面上的按钮,那么就会产生…...

JAVA高并发——并行算法
文章目录 1、并行流水线2、并行搜索3、并行排序3.1、分离数据相关性:奇偶交换排序3.2、改进的插入排序:希尔排序 4、并行算法:矩阵乘法 1、并行流水线 并行算法虽然可以充分发挥多核CPU的性能,但并非所有的运算都可以改造成并行的…...

HTTP 与 HTTPS-HTTP 解决了 HTTP 哪些问题?
资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP 解决了 HTTP 哪些问题? HTTP 由于是明文传输,所以安全上存在以下三个风险: 窃听风险,比如通信链路上可以获取通信内容,用户号容易没。篡改风险,比如…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...
6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...

Java设计模式:责任链模式
一、什么是责任链模式? 责任链模式(Chain of Responsibility Pattern) 是一种 行为型设计模式,它通过将请求沿着一条处理链传递,直到某个对象处理它为止。这种模式的核心思想是 解耦请求的发送者和接收者,…...