目录

  • 前言
  • 一、将所有依赖和模块代码打包为一个jar
  • 二、只将模块代码打包为一个jar
  • 三、其他方法打包
    • 1.使用 spring-boot-maven-plugin 插件打包
    • 2.其他插件打包

前言

假设我有如下简单 maven 项目

点击 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 包也会输出到这个目录

三、其他方法打包

上面的方式是使用 idea 来打包,如果你使用的是 maven 项目,你也可以使用其他插件来打包。

1.使用 spring-boot-maven-plugin 插件打包

在 pom.xml 中的 build 标签下的 plugins 标签下加入如下配置:

            <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.6.0</version><configuration><mainClass>com.xtool.manager.MainDemo</mainClass><finalName>XTool</finalName><includes><include><groupId>nothing</groupId><artifactId>nothing</artifactId></include></includes></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin>

说明:

  1. mainClass 标签里是你的项目的启动类的包路径,如果你的项目没有有启动类也不需要通过 java -jar 运行的话可以删除 mainClass
  2. finalName 标签里的就是打出来的 jar 名,我这里是 XTool ,最终生成的就是 XTool.jar 。若不使用 finalName 指定,则打包生成的 jar 包名默认使用 pom.xml 文件里 artifactId 标签和 version 标签里的值作为 jar 的名。
  3. 如果你希望最终生成的 jar 包不包含第三方依赖那直接用上面的插件配置即可。如果希望最终生成的 jar 包里包含第三方依赖那就删除 includes 标签及其里面的内容

在 idea 右边侧边栏的 Maven 选项卡里点击 Lifecyle 下的 package 就可以开始打包了

最终生成的 jar 包就在 target 目录下

2.其他插件打包

除了上面的插件可以打包,还有maven-dependency-plugin、maven-shade-plugin、maven-assembly-plugin等插件也可以打包,这里就不再介绍了,感兴趣可以看下这篇文章:How to Create an Executable JAR with Maven

idea 项目代码打包为jar包详解相关推荐

  1. Jar包详解和META-INF作用(…

    原文地址:Jar包详解和META-INF作用(创建可执行jar文件)--转帖作者:玉琪星兆 如 何把 Java 程序编译成 .exe 文件.通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然 ...

  2. android jar 包 意见反馈功能,android重点jar包详解.docx

    android重点jar包详解 深入理解View(一):从setContentView谈起 我们都知道?MVC,在Android中,这个?V?即指View,那我们今天就来探探View的究竟.在onCr ...

  3. spring2.0和spring2.5及以上版本的jar包区别 spring jar 包详解

    spring jar 包详解 spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环 ...

  4. 【spring】jar包详解与模块依赖关系

    以spring3.X为例 jar包详解 1. spring-core.jar:包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心: 2. spri ...

  5. java axis2 jar_Java axis2.jar包详解及缺少jar包错误分析

    Java  axis2.jar包详解及缺少jar包错误分析 一.最小开发jar集 axis2 开发最小jar包集: activation-1.1.jar axiom-api-1.2.13.jar ax ...

  6. java axis2 jar_Java axis2.jar包详解及缺少jar包错误分析

    Java  axis2.jar包详解及缺少jar包错误分析 一.最小开发jar集 axis2 开发最小jar包集: activation-1.1.jar axiom-api-1.2.13.jar ax ...

  7. 将写好的java代码打包成jar包并且运行

    一.前言 今天那记录一下jar包的打包以及运行的过程,还是老样子大佬勿喷有问题求告知,谢谢啦. 二.直奔主题 1.首先通过idea写一段简单的Java代码如下图所示 2.写好后我们找到如下图的图标,点 ...

  8. java jar包详解_Jar打包用法详解

    这篇文章主要介绍了Jar打包用法,详解分析了jar打包命令的各种常见用法及参数含义,非常具有实用价值,需要的朋友可以参考下 本文较为详细的分析了Jar打包的用法.分享给大家供大家参考.具体分析如下: ...

  9. IDEA创建JavaFX项目并打包成jar包和exe可执行文件

    一.创建JavaFx项目 点击新建,在左侧选择Java FX 二.将JavaFx打包成jar包 1.打开项目结构,选择工件(Artifact), 2. 3.选择主类 4.选择你的主类,点击确定. 5. ...

最新文章

  1. jquery validate 详解一
  2. 计算机网络:NAT基本原理
  3. Interview:算法岗位面试—10.15上午—上海某公司算法岗位(偏图像算法,制造行业)技术面试考点之AI算法与实际场景结合产生商业价值的头脑风暴
  4. 科大星云诗社动态20220113
  5. 字符串转换整数(atoi)Python解法
  6. linux smb 启动失败,[已解决]windows能看到smb,但是打不开
  7. mpvue 微信小程序 显示 转发按钮
  8. 80-300-050-原理-MySQL执行解析
  9. 易经入门(体系最完整,推荐书目最完备,易经周易入门必收藏)
  10. 常用测试软件01——串口调试软件
  11. 搭建lxr搭建自己的代码检索网站
  12. python中双等号与单等号的区别_双等号 == 与单等号 =
  13. 单片机 什么是单片机?
  14. 如何进行创新流程的前端管理?
  15. Android技术结构图
  16. ANSYS经典界面 2D和3D永磁体磁场仿真
  17. 做好的一个查询淘宝天猫优惠券的APP和网站
  18. Linkage mapper 重大事故——文末问卷链接咨询
  19. 【UE4】【笔记】5、UE4学习笔记 LOD与合并静态网格体
  20. Centos 创建多个网站

热门文章

  1. iOS beta固件升级的坑
  2. 【统计学习方法系列】赏析李航教授《监督学习:回归与分类》
  3. java web 虚拟主机配置
  4. 软件工程导论第二篇学习心得
  5. 华为4G移动路由器管理后台加密算法
  6. java切面编程 切面概念,面向切面编程(AOP)初探
  7. php uniqid 高并发,PHP-PHP中的uniqid在高并发下的重复问题
  8. 大数据采集工具Flume
  9. Hexo+gitee,NexT主题搭建个人博客首页图标为方框问题
  10. 【即将截止】#榜样的力量#寻找新冠战“疫”,中国数据智能产业先锋力量丨数据猿公益策划...