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

Springboot项目集成maven-assembly-plugin进行打包

通常我们将应用部署到服务器的某个目录下,一般情况下我们会提供像target(存放应用jar包),bin(项目启动/停止脚本),config(项目配置文件),logs(项目输出日志)之类的目录。

maven-assembly-plugin 这个插件非常适合用于打包应用程序以便于发布或部署。它是 Apache Maven 中的一个插件,它允许你根据自定义的描述符文件(通常是 assembly.xml)来创建各种格式的归档文件(如 ZIP、JAR、TAR.GZ 等),可以轻松的将项目构建输出、依赖库、模块、站点文档以及其他指定的文件进行打包。

1、修改项目结构添加assembly和bin文件夹。assembly文件夹中的assembly.xml来配置打包规则,bin文件夹中放置启动/停止脚本。

2、简单配置assembly.xml

<assembly xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
    <id>deploy</id>
    <formats>
        <format>dir</format>
        <format>tar.gz</format>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>./config/</directory>
            <includes>
                <include>**</include>
            </includes>
            <outputDirectory>config</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>./bin/</directory>
            <includes>
                <include>**</include>
            </includes>
            <outputDirectory>bin</outputDirectory>
            <fileMode>0755</fileMode>
        </fileSet>
    </fileSets>
    <files>
        <file>
            <source>target/${artifactId}-${project.version}.jar</source>
            <destName>${project.artifactId}.jar</destName>
            <outputDirectory>./target/</outputDirectory>
        </file>
        <file>
            <source>src/main/resources/application.yml</source>
            <outputDirectory>./config/</outputDirectory>
        </file>
    </files>
</assembly>

3、修改pom文件的<build>标签内容添加maven-assembly-plugin

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-assembly-plugin</artifactId>
			<executions>
				<execution>
					<id>make-assembly</id>
					<phase>package</phase>
					<goals>
						<goal>single</goal>
					</goals>
					<configuration>
						<appendAssemblyId>true</appendAssemblyId>
						<descriptors>
							<descriptor>./assembly/assembly.xml</descriptor>
						</descriptors>
					</configuration>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>

4、使用maven打包看效果

相关文章:

  • Kubeasz工具快速部署K8Sv1.27版本集群(二进制方式)
  • Angular 2 JavaScript:深度解析与实战指南
  • Python 编程题 第十一节:选择排序、插入排序、删除字符、目标移动、尾部的0
  • AI Agent深度进化论:从多模态感知到自主决策革命的行业落地全景透视
  • 【PCB工艺】电流、电压与电阻的关系 以及 含有电容和电感的电路
  • HTML基础内容3
  • 胜科纳米上市在即:营收连增多年,失效分析、材料分析技术市场领先
  • 极简桌面待办清单软件,❌不会增加工作量
  • 遗传算法+四模型+双向网络!GA-CNN-BiLSTM-Attention系列四模型多变量时序预测
  • kubectl describe pod 命令以及输出详情讲解
  • 1.小乌龟速度控制
  • swagger ui 界面清除登录信息的办法
  • 嵌入式硬件篇---龙芯GPIO控制
  • Python基于深度学习的中文情感分析系统(V2.0,附源码,文档说明)
  • 【DRAM存储器四十七】LPDDR5介绍--LPDDR5的低功耗技术之DVFS
  • 股票:大盘定义及S成长性
  • 网络编程 day04
  • 构建企业核心竞争力深入解析某著名企业卓越运营管理框架(71页PPT)(文末有下载方式)
  • Python个人学习笔记(16):模块(os)
  • BGP路由协议【网络协议详解】--通俗易懂!
  • 上海市委常委会扩大会议传达学习习近平总书记考察上海重要讲话和在部分省区市“十五五”时期经济社会发展座谈会上的重要讲话精神
  • 非洲中青年军官代表团访华,赴北京、长沙、韶山等地参访交流
  • 发表“男性患子宫肌瘤”论文的杂志一年发文三千余篇,中介称可提供代写
  • 上海车展侧记|中国汽车产业的韧性从何而来
  • 特朗普考虑任命副幕僚长米勒任国安顾问,曾策划驱逐移民行动
  • 2025五一档电影票房破6亿