当前位置: 首页 > news >正文

Java程序打jar包(包含作者各种踩坑案例,力求为大家避雷)

一、诉求

将一个spring boot项目打包成一个jar包,直接在windows或者linux系统下直接命令行运行。

二、配置步骤

1、编写assembly.xml配置文件(放在pom.xml同级目录)

<?xml version="1.0"?>
<assembly><id>Test-v1.0</id><formats><format>jar</format></formats><includeBaseDirectory>false</includeBaseDirectory><fileSets><fileSet><directory>${project.build.directory}</directory><outputDirectory>/</outputDirectory><includes><include>*.jar</include></includes></fileSet></fileSets>
</assembly><!--注-->
(1)<includeBaseDirectory>:这个元素指定了在打包时是否包含基础目录。设置为false意味着不会将构建目录(${project.build.directory})本身作为打包的一部分,而是只包含其下的文件和目录。
(2)<directory>:指定了源目录的路径,这里使用了Maven属性${project.build.directory},它通常指向项目的target目录,即Maven构建输出的目录。
(3)<outputDirectory>:定义了这些文件在打包文件中的目标目录。这里设置为/,意味着这些文件将被放置在打包文件的根目录下。
(4)<includes>:定义了哪些文件应该被包含在打包中。这里通过<include>*.jar</include>指定了所有.jar文件都应该被包含。

2、在pom.xml文件中配置依赖(此处只罗列打包用到的依赖)

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>8</java.version><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version><maven-assembly-plugin.version>2.2.1</maven-assembly-plugin.version><maven-jar-plugin.version>2.4</maven-jar-plugin.version><maven-surefire-plugin.version>2.12.4</maven-surefire-plugin.version>
</properties><plugin><artifactId>maven-jar-plugin</artifactId><configuration><excludes><exclude>application.yml</exclude><exclude>font/</exclude></excludes></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.1.RELEASE</version><configuration><!-- 工程主入口--><mainClass>com.demo.AnalysisApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>2.2.1</version><executions><execution><phase>package</phase><goals><goal>single</goal></goals><configuration><finalName>testProject</finalName><descriptors><descriptor>assembly.xml</descriptor></descriptors></configuration></execution></executions></plugin>

3、正式开始打包(非常简单)

第一步:打开IDEA右侧的maven菜单栏

在这里插入图片描述

第二步:点击clean

在这里插入图片描述

第三步:点击package

在这里插入图片描述

第四步:命令行输出打包成功,在target目录下即可看到jar包

在这里插入图片描述

通过命令行查看jar包中包含的文件

jar tf your-jar-file.jar

注意此处有许多坑:
1、注意mainClass com.demo.AnalysisApplication这里的主程序入口路径有没有写错!
2、注意通过此方法打包的jar是没有application.xml配置文件的,需要运行jar包时命令行进行输入参数使用!

4、运行jar包

java -jar ./test-v1.0.jar --spring.config.location=./application.yml

结束!撒花~~作者踩了两天的坑才总结出来的,希望有用!!!


http://www.mrgr.cn/news/20831.html

相关文章:

  • PLC协议转换网关:巨控NET400
  • Java8 Stream流的基本使用
  • 关于linux下编译so动态库及加载提示找不到文件路径的问题
  • RS485差分信号不对称
  • R-Adapter:零样本模型微调新突破,提升鲁棒性与泛化能力 | ECCV 2024
  • AI 编程工具—Cursor
  • 开学季好物狂欢,这些神仙好物让你开学季事半功倍!
  • 【LLM之Data】WizardLM论文阅读笔记
  • <Rust>egui学习之小部件(十):如何在窗口中添加复选框checkbox部件?
  • Percona Toolkit 神器全攻略(复制类)
  • 基于stm32f407舵机的使用以及项目的具体的使用事项
  • 衡石分析平台使用手册-安装环境准备
  • 基质金属蛋白酶(MMPs):癌症侵袭和转移的主要驱动者
  • 2024软考-软件设计师-经典易错题
  • 2024高教社杯全国大学生数学建模竞赛C题解析 | 思路 代码 论文
  • WordPress上可以内容替换的插件
  • C++入门(2)
  • 极市开发平台yolov8训练无人机数据集样例数据流程
  • 【生日视频制作】黄底毛笔书法字展示写字效果AE模板修改文字软件生成器教程特效素材【AE模板】
  • 已入职华为!!关于我成功拿下华为大模型算法岗经验总结