生成带依赖Jar 包的两种常用方式:IDEA打包工具:Artifacts 和 maven-shade-plugin

本文主要是介绍生成带依赖Jar 包的两种常用方式:IDEA打包工具:Artifacts 和 maven-shade-plugin,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 1、IDEA打包工具:Artifacts
    • 1.1 创建Artifacts
    • 1.2 选择第三方jar文件
    • 1.3 打包Artifacts
    • 1.4 测试jar包
  • 2、maven-shade-plugin
    • 2.1、pom文件添加
    • 2.2、打包
    • 2.3、测试jar包
  • 总结


前言

当我们编写完Java程序后,为了提高执行效率通常会将应用程序打包成JAR(Java Archive)包。JAR包中的类文件经过预编译和优化,可以直接被Java虚拟机(JVM)执行,而无需再次编译。这样可以避免重复的编译过程,减少了启动时间和运行时的开销。
为了保证生成的JAR包可以直接在虚拟机中运行,需要采用带依赖的打包方式。本文提供了两种常用的打包方式:

  1. IDEA自带的打包工具: Artifacts;
  2. 使用pom引入:maven-shade-plugin进行打包。

1、IDEA打包工具:Artifacts

1.1 创建Artifacts

使用快捷键(Ctrl+Alt+Shift+S)可以快速打开项目的Project Structure。
在这里插入图片描述
按照Artifacts==> “+” ==> “JAR” ==> "From modules with dependencies"的顺序
在这里插入图片描述

点击Main Class 。在Select Main Class==>Search by Name中选择选择程序的入口函数。
在这里插入图片描述
在这里插入图片描述
再点击上图的Ok,创建得到的artifacts。
在这里插入图片描述

1.2 选择第三方jar文件

通过 “+” 或者 “-” 选择需要打入artifacts的第三方jar文件,如图:
在这里插入图片描述
Extracted后的JAR包是指从Jar包中提取出来的已经解压的文件,通常包括类文件、资源文件等等。如果没有这些文件,直接运行JarAR包会导致无法加载运行所需的类文件,从而提示类找不到的错误。
选择完第三方Jar文件后,点击Apply和OK,保存配置信息。

1.3 打包Artifacts

在菜单栏目找到Build,选择Build Artifacts。
在这里插入图片描述

最后窗口,点击Build们就可以生成JAR包了。
在这里插入图片描述

打包后的位置在左侧的out中。
在这里插入图片描述

1.4 测试jar包

在jar包位置,右键选择Open in ==> Explorer ;
在这里插入图片描述
来到jar包的位置,在上方的地址栏直接输入“cmd”
在这里插入图片描述
执行命令:

java -jar <pack-name>
<pack-name>:为要执行的jar包名称

例如:

java -jar emSystem_install_UI.jar

执行结果。
在这里插入图片描述


2、maven-shade-plugin

我个人更喜欢使用maven-shade-plugin进行打包。它能够将Java项目打包成可执行的JAR文件,并自动包含所有依赖项,从而无需单独安装和配置所有的依赖项。

2.1、pom文件添加

在pom文件中加入以下内容:

	<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>2.4.1</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>com.kbdct.swing.frame.panelSysAuth.test.TestMainSecond</mainClass></transformer></transformers></configuration></execution></executions></plugin></plugins></build>
<groupId>、<artifactId> 和 <version> 元素指定了要使用的 Maven Shade Plugin 版本。<executions> 元素定义了一个插件执行<phase> 元素指定了这个插件执行的阶段,在这里是 package 阶段。<goals> 元素指定了要在执行时使用哪个插件(这里是 shade )。<configuration> 元素包含了 Shade Plugin 的详细配置。<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">。是一个转换器。在这个例子中,转换器的功能是:为打包的 Jar 文件生成一个 MANIFEST.MF 文件。<mainClass> 元素中指定了可执行的 Java 类,这个类将作为启动项目时的主类。

2.2、打包

按照clean==>complie==>package的顺序进行打包。
在这里插入图片描述

在左侧会生成target文件,里面就有可以执行的jar文件
在这里插入图片描述

补充:使用 maven-shade-plugin 打包的项目被存储在 Maven 项目的 target 目录下,并生成三个文件:

1. “-SNAPSHOT” 后缀的 Jar 包: 原始的 Jar 包。“-SNAPSHOT” 后缀是 Maven 的一种命名规范,用于表示当前版本是一种开发中的、不稳定的版本。
2. “origin” 前缀的Jar包: 是没有经过重命名的依赖 Jar 包。这些 Jar 包通常包含项目依赖的库和框架。
3. “-SNAPSHOT-shaded” 后缀的 Jar 包: 是经过重命名的可运行 Jar 包。这个重命名避免了与其他依赖项名称冲突。在其中的MANIFEST.MF 文件中也包含了正确的主类信息。

2.3、测试jar包

测试的过程与1.4部分同理。建议运行-1.0-SHAPSHOT-shaded.jar结尾的jar包,此处直接展示测试结果。
执行命令:

java -jar <pack-name>
<pack-name>:为要执行的jar包名称

例如:

java -jar emSystem_install_UI-1.0-SHAPSHOT-shaded.jar

执行结果。
在这里插入图片描述


总结

介绍了两种打包方法:

  1. IDEA打包工具:Artifacts
  2. maven-shade-plugin插件

这篇关于生成带依赖Jar 包的两种常用方式:IDEA打包工具:Artifacts 和 maven-shade-plugin的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/446155

相关文章

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

Debian系和Redhat系防火墙配置方式

《Debian系和Redhat系防火墙配置方式》文章对比了Debian系UFW和Redhat系Firewalld防火墙的安装、启用禁用、端口管理、规则查看及注意事项,强调SSH端口需开放、规则持久化,... 目录Debian系UFW防火墙1. 安装2. 启用与禁用3. 基本命令4. 注意事项5. 示例配置R

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具