spring-boot-maven-plugin插件 —— 默认打包配置

创建 Spring Boot 应用,默认会添加 Maven 插件:spring-boot-maven-plugin。如果项目结构比较简单,可以不用额外配置,使用默认的编译打包就可以。

执行 maven 打包命令时会自动触发 spring-boot-maven-plugin 插件的 repackage 目标,完成后会在 target 目录下生成两个 jar,如下图:

命令执行后会在创建的 target 目录中会生成 2 个文件:

  • *.jar:可执行 jar,包含 pom 中的所有依赖,可直接用 java -jar 命令执行。
  • *.jar.original:是 Maven 在 Spring Boot 重新打包(repackage)之前创建的原始 jar文件,只有少量的用户类,不包含依赖。

执行 打包命令后,先是执行的 mvn 常规操作,创建普通 jar包,然后 spring boot repackage 将其重新命名为 *.jar.original 原始包, 在原始包的基础上添加项目依赖和起动类,最后打成可执行的 jar包。
 

pom.xml配置如下:

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot-dependencies.version}</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins>
</build>

默认情况下,repackage 目标将用重新打包的包替换原始原包。

若项目结构比较复杂,如父子结构、多层结构或通过命令动态指定打包方式等,就需要额外的配置支持。

Goals 作用

  • build-info:根据当前 MavenProject 的内容生成一个build-info.properties文件。
  • help:显示帮助信息。调用mvn spring-boot:help -Ddetail=true -Dgoal=以显示参数详细信息。
  • repackage:默认的值,重新打包现有的 JAR 和 WAR 包,以便可以使用 java -jar 命令行来运行。使用 layout = NONE也可以简单地用于打包具有嵌套依赖关系的 JAR(并且没有主类,因此不是可执行文件)。简单的说就是生成可执行的jar包或war包。
  • run:运行一个可执行的应用
  • start:启动 Spring 应用程序。 与run目标相反,这不会阻止并允许其他目标在应用程序上运行。此目标通常用于集成测试方案中,在该方案中,应用程序在测试套件之前启动,然后在测试套件之后停止。
  • stop:停止已由 start 目标启动的 Spring 应用程序。 通常在测试套件完成后调用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/188556.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工程建设智慧施工云平台源码 智慧工地平台源码

智慧工地平台源码 工程建设智慧施工云平台源码 技术框架&#xff1a;微服务架构JavaSpring Cloud UniApp MySql 智慧工地平台是一种智慧型、系统性的工地信息化解决方案&#xff0c;它把现代信息技术融入到建设工程管理中&#xff0c;协调各方资源&#xff0c;优化施工过程&…

【Axure教程】滑动内容选择器

滑动内容选择器通常是一种用户界面组件&#xff0c;允许用户通过滑动手势在一组内容之间进行选择。这种组件可以在移动应用程序或网页中使用&#xff0c;以提供直观的图片选择体验。 那今天就教大家如何用中继器制作一个滑动内容选择器&#xff0c;我们会以滑动选择电影为案例…

使用Sqoop命令从Oracle同步数据到Hive,修复数据乱码 %0A的问题

一、创建一张Hive测试表 create table test_oracle_hive(id_code string,phone_code string,status string,create_time string ) partitioned by(partition_date string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ,; 创建分区字段partition_date&#xff0c…

抖音主播私信脚本,给直播间的主播发消息,按键精灵脚本开源

这个脚本运行后会给正在直播的主播自动发送话术消息&#xff0c;也是用按键精灵写的&#xff0c;我自己测试运行没有任何问题&#xff0c;下面是UI和代码。 UI界面&#xff1a; 界面代码&#xff1a; 界面1: { 请在下面设置话术: { 输入框: { 名称:"输入框1",…

PyTorch

正常界面 创建环境 conda create -n env_test python3.6进入环境 conda activate env_testpycharm中&#xff0c;创建项目&#xff0c;选择环境

详解自动化测试之 Selenium

目录 1. 什么是自动化 2.自动化测试的分类 3. selenium&#xff08;web 自动化测试工具&#xff09; 1&#xff09;选择 selenium 的原因 2&#xff09;环境部署 3&#xff09;什么是驱动&#xff1f; 4. 一个简单的自动化例子 5.selenium 常用方法 5.1 查找页面元素&…

【leaflet】学习笔记5 自定义控制层、多图层及其控制 重构

▒ 目录 ▒ &#x1f6eb; 导读开发环境 1️⃣ 重构data.js 数据抽取MyMap 面向对象编程继承MyMap类 2️⃣ d5. 自定义控制层、多图层及其控制示例效果自定义控制层多图层及其控制 &#x1f6ec; 文章小结&#x1f4d6; 参考资料 &#x1f6eb; 导读 开发环境 版本号描述文章…

004 OpenCV akaze特征点检测匹配

目录 一、环境 二、akaze特征点算法 2.1、基本原理 2.2、实现过程 2.3、实际应用 2.4、优点与不足 三、代码 3.1、数据准备 3.2、完整代码 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、akaze特征点算法 特征点检测算法…

三菱FX3U小项目—传输带定分级控制

目录 一、项目描述 二、IO口分配 三、项目程序 四、总结 一、项目描述 两条运输带顺序相连&#xff0c;为了避免运送的物料在1号运输线上堆积&#xff0c;所以启动时&#xff0c;1号运输带开始运行&#xff0c;5S后2号运输带自动启动。停机时顺序与启动刚好相反&#xff0c…

激光跟踪仪在超大型工件空间测量中的应用,你了解多少?

超大型工件的空间测量是现代制造业中的一个难题。传统的测量方法无法同时满足高精度和高效率的要求&#xff0c;从而制约了工件制造的质量和效益。 激光跟踪仪作为一种创新的测量设备&#xff0c;具有无接触、高精度和高速度的特点。它采用了先进的激光干涉测距和角度测量技术…

新加坡金融科技节,IMF呼吁加快CBDCs数币的框架

CBDCS,那CBDC是什么呢&#xff1f; 中央银行数字货币 CBDC&#xff08;英文&#xff1a;Central Bank Digital Currency&#xff09;&#xff0c;指的是数字版本的国家货币. 我们现在经常听到的数字人民币&#xff0c;也就是中国的CBDC. 在传统与创新的交汇处&#xff0c;一种…

使用 Redis BitMap 实现签到与查询历史签到以及签到统计功能(SpringBoot环境)

目录 一、前言二、Redis BitMap 位图原理2.1、BitMap 能解决什么2.2、BitMap 存储空间计算2.3、BitMap 存在问题 三、Redis BitMap 操作基本语法和原生实现签到3.1、基本语法3.2、Redis BitMap 实现签到操作指令 四、SpringBoot 使用 Redis BitMap 实现签到与统计功能4.1、代码…