Springboot企业级部署解决方案

2023-11-12

使用springboot的童鞋们,有没曾经想把项目打包成 bin/conf/libs/logs 等这样的结构然后直接运行的,但是找了很多办法都不够完美(因为G是个完美主义 14.gif
好了直接来看解决方案:
1、修改执行打包的子工程的pom.xml文件(加入两个插件):
<build>
<finalName>app</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>script/**</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<skip>true</skip>
<archive>
<manifest>
<mainClass>com.xxx.bbb.MyMainClass</mainClass>
<addClasspath>true</addClasspath>
</manifest>
<manifestEntries>
<Class-Path>./</Class-Path>
<Built-By>Wangl.sir</Built-By>
<Built-Mail-By>983708408@qq.com</Built-Mail-By>
<Bundle-Name>Project Description </Bundle-Name>
<Implementation-Vendor></Implementation-Vendor>
<Implementation-URL>http://www.xxx.com/wiki</Implementation-URL>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<finalName>app-${project.version}-bin</finalName>
<!-- not append assembly id in release file name -->
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/assemble/package.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2、新增assemble配置文件(保存至src/main/assemble/package.xml):
<assembly xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.0.0.xsd">
<id>jar-with-dependencies</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
                        <!-- src/main/resources/script目录保存的如:app_ctrl.sh、app_start.sh、app_stop.sh等脚本,maven-assemble会将此目录下的.sh文件复制到最后生成的bin目录下 -->
<directory>src/main/resources/script</directory>
<outputDirectory>bin</outputDirectory>
<includes>
<include>*.*</include>
</includes>
</fileSet>
<fileSet>
<directory>src/main/resources</directory>
<outputDirectory>conf</outputDirectory>
<includes>
<include>*.*</include>
</includes>
</fileSet>
<fileSet>
<directory>target</directory>
<outputDirectory>libs</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
<fileSet>
<directory>src/main/resources</directory>
<outputDirectory>logs</outputDirectory>
<excludes>
<exclude>*.*</exclude>
<exclude>script/**</exclude>
</excludes>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>libs</outputDirectory>
<scope>runtime</scope>
<excludes>
<exclude>${groupId}:${artifactId}</exclude>
</excludes>
</dependencySet>
</dependencySets>
</assembly>
3、最后就只需执行  mvn clean install -DskipTests
等待maven执行完成,在target目录下会出现app-{project.version}-bin.zip
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Springboot企业级部署解决方案 的相关文章

随机推荐

  • LocalDate的用法与String互转

    一 LocalDate常用用法 1 1 申明定义 LocalDate formatDate LocalDate of 2020 2 5 自定义 LocalDate today LocalDate now 获取当前日期 1 2 getX 获取
  • WebRTC实时音视频技术的整体架构介绍

    WebRTC 简介 WebRTC 名称源自网页实时通信 Web Real Time Communication 的缩写 是一个支持网页浏览器进行实时语音通话或视频聊天的技术 是谷歌2010年以6820万美元收购Global IP Solut
  • Echarts 无数据时显示“暂无数据”

    当我们的图表遇到接口数据为空或者筛选之后无数据的情况 会显示成这样 就比较丑 所以需要更换成指定的某些文字做提示 通过配置title 曲线救国 title show true text 暂无数据 left center top center
  • JAVA小练习149——需求: 一家三口都要工作, 儿子工作负责绘画, 妈妈可以在儿子的工作上进行增强---上涂料, 爸爸的工作就是在妈妈的基础上增强---上画框

    interface Work public void work class Son implements Work Override public void work System out println 在画画 class Mother
  • python实践:让所有奇数都在偶数前面,而且奇数升序排列,偶数降序排序

    给定一个任意长度数组 实现一个函数 让所有奇数都在偶数前面 而且奇数升序排列 偶数降序排序 如字符串 1982376455 变成 1355798642 class Solution def SortNum self num list par
  • js查找数组重复元素

    方法一 利用sort方法 先使用sort方法将数组排序 再来判断找出重复元素 function res arr var temp arr sort sort function a b if a b temp indexOf a 1 temp
  • 数值分析复习笔记-第七章-非线性方程求根

    Chapter7 非线性方程求根 7 1 前言 本质 对一些n次代数多项式or超越方程 它们的根是难以通过解析方法求得 因此需采取数值方法 主要有 二分法 不动点迭代法 迭代加速 牛顿迭代法 牛顿法 割线法 7 2 二分法 数学基础 零点定
  • 多边形等分算法

    多边形等分
  • Python基础-- 9函数(中)

    一 函数的返回值 返回值就是函数执行以后返回的结果 通过return来指定函数的返回值 return后面可以跟任意对象 返回值甚至可以是 个函数 二 文档字符串 在定义函数时 可以在函数内部编写文档字符串 文档字符串就是对函数的 说明 he
  • Linux中TAB补全显示设备空间不足问题

    今天在使用linux中习惯性的使用tab键进行补全信息 发现无论在何处按下tab都会显示这样报错 图中因为我用了xshell工具 这里报错是中文的 这个时候要检查下自己的空间是否充足 可使用df查看设备目录使用空间大小 可以将一下不用的目录
  • 概率论的几种常考分布总结

    两点分布 0 1分布 X b 1 p 二项分布 X b n p k 0 1 2 n 指数分布 参数为 线性分布 参数为a b 泊松分布 X k 0 1 2 n
  • 程序员常犯的5个非技术性错误

    一个好的软件开发人员需要培养两种技能 技术技能和非技术技能 不幸的是一些开发者只注重技术的部分 以致养成一些陋习 下面是最常犯的5个非技术性错误 0 缺乏自律 Jim Rohn曾经说过 自律是目标和成果之间的桥梁 我一直认为 不论是成为一名
  • 半导体芯片测试介绍:CP、FT、STL

    CP测试 Chip Probing 对Wafer进行电性能测试 挑选出好的Die 可以减少封装和测试的成本 也可以透过Wafer的良率 检查fab厂制造的工艺水平 FT测试 Final Test 芯片封装完成之后 通过分选机和测试机的配合使
  • Android 兼容8.0 App全局字体调节、禁止App字体随系统字体大小而更改

    在APP中 字体的大小单位一般会用sp 然而在改变系统字体大小时 App字体就会随着系统字体大小改变而改变 这就可能造成APP布局的错位 造成这种情况的原因是 sp单位除了受屏幕密度影响外 还受到用户的字体大小影响 通常情况下 建议使用sp
  • 【周末闲谈】什么是云计算?

    个人主页 个人主页 系列专栏 周末闲谈 第一周 二进制VS三进制 第二周 文心一言 模仿还是超越 第二周 畅想AR 文章目录 前言 什么是云计算 大数据 云计算是分布式计算的一种 云计算为我们提供的三种服务 基础设置即服务 laaS 软件运
  • Unicode汉字编码表

    1 Unicode编码表 Unicode只有一个字符集 中 日 韩的三种文字占用了Unicode中0x3000到0x9FFF的部分 Unicode目前普遍采用的是UCS 2 它用两个字节来编码一个字符 比如汉字 经 的编码是0x7ECF 注
  • 几种任务调度的 Java 实现方法与比较

    I 几种任务调度的 Java 实现方法与比较 综观目前的 Web 应用 多数应用都具备任务调度的功能 本文由浅入深介绍了几种任务调度的 Java 实现方法 包括 Timer Scheduler Quartz 以及 JCron Tab 并对其
  • project facets java转成web项目

    前言 用Eclipse开发项目的时候 把一个Web项目导入到Eclipse里会变成了一个Java工程 将无法在Tomcat中进行部署运行 方法 1 找到 project文件 找到里面的
  • [GUI]stm32搭载3.5寸SPI-TFT屏移植LittleVGL

    唠几句 记录下移植笔记 新项目用到LVGL 也是首次接触GUI库 所以Emmmm 学呗 之前都是直接在LCD屏上画点 画线 画圆 画个矩形 画个多边形 显示个字符串 显示张图片而已 没有用过GUI库 在网上找了点学习资料 然后把LVGL库的
  • Springboot企业级部署解决方案

    使用springboot的童鞋们 有没曾经想把项目打包成 bin conf libs logs 等这样的结构然后直接运行的 但是找了很多办法都不够完美 因为G是个完美主义 好了直接来看解决方案 1 修改执行打包的子工程的pom xml文件