Springboot基于组装的服务化打包方案是怎样的

  介绍

Springboot基于组装的服务化打包方案是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

,,在使用汇编来打包springboot微服务项目前,我想说一说,目前springboot项目的几种常见的部署方式。

<李>

,使用码头工人容器去部署,将springboot的应用构建成一个码头工人形象,然后通过容器去启动镜像,这种方式在需要部署大规模的应用和应用扩展时是非常方便的,属于目前工业级的部署方案,但是需要掌握码头工人的生态圈技术只

<李>

,使用fatjar直接部署启动,这是很多初学者或者极小规模情况下的一个简单应用部署方式只,

,

,

一、为什么要将springboot服务化打包,?

,,,最近我看到一个项目团队,他们在采用springboot开发完项目构建交互给运维团队就是一个弹簧引导的fatjar。而且这种原始打出的包在传统型项目开发公司,对于运维人员来说无疑是很致命的,项目交付后整个配置文件都被隐藏到打成的jar中,针对不同的环境修改配置文件就变成了一件很困难的事情,因此,我们在公司引入任何新技术时,一定要考虑怎么去做服务化和工程化,如果仅仅引用技术框架,很多时候可能只需要加入几个依赖,看下api写几行代码就能跑起来。

,,,,针对上面的这种问题,要去做服务化和工程化,大致要解决两点问题:

<李>

让springboot能够加载罐外的配置文件。

<李>

提供一个服务化的启动脚本,这个脚本一般是shell或者windows下的bat ,有了springboot的应用服务脚本后,就可以很容易的去启动和停止springboot的应用了。

二,打包后的springboot应用结构图

,,,,,,,,,这里先来看下使用装配将springboot服务化打包后的效果图。

 springboot基于组装的服务化打包方案是怎样的

三,服务化打包重要步骤

,,,,下面是打包springboot的详细步骤。

3.1加入大会打包插件

 & lt; plugin>
  & lt; artifactId> maven-assembly-plugin
  & lt; version> 3.0.0
  & lt; configuration>
  ,,,& lt; descriptors>
  & lt; descriptor> src/main/组装/assembly.xml
  ,,,& lt;/descriptors>
  & lt;/configuration>
  & lt; executions>
  ,,,& lt; execution>
  & lt; id> make-assembly
  & lt; phase> package
  & lt; goals>
  ,,,& lt; goal> single
  & lt;/goals>
  ,,,& lt;/execution>
  & lt;/executions>
  & lt;/plugin> 

从上面代码看出了我把组装的配置放在主要目录下,这个是习惯,可以不放这里也可以,下面就是一个组装在项目中的大致结构图:

 Springboot基于组装的服务化打包方案是怎样的

3.2, assembly.xml配置

,,,,,,组装的配置不同的应用和下面配置也差不多,无非就是打包服务脚本,jar,配置文件等。从下面的代码中配置配置就会发现,大会将配置文件打到了配置下。

 & lt; assembly>
  ,,,& lt; id> 1.0 & lt;/id>
  ,,,& lt; formats>
  ,,,,,,,& lt; format> tar.gz
  ,,,& lt;/formats>
  ,,,& lt; fileSets>
  ,,,,,,,& lt; fileSet>
  ,,,,,,,,,,,& lt; directory> src/main/组装/bin
  ,,,,,,,,,,,& lt; outputDirectory> bin
  ,,,,,,,,,,,& lt; fileMode> 0755 & lt;/fileMode>
  ,,,,,,,& lt;/fileSet>
  ,,,,,,,& lt; fileSet>
  ,,,,,,,,,,,& lt; directory> src/main/组装/config
  ,,,,,,,,,,,& lt; outputDirectory> config
  ,,,,,,,,,,,& lt; fileMode> 0644 & lt;/fileMode>
  ,,,,,,,& lt;/fileSet>
  ,,,,,,,& lt; fileSet>
  ,,,,,,,,,,,& lt; directory> target
  ,,,,,,,,,,,& lt; outputDirectory> lib
  ,,,,,,,,,,,& lt; includes>
  ,,,,,,,,,,,,,,,& lt; include> * .jar
  ,,,,,,,,,,,& lt;/includes>
  ,,,,,,,& lt;/fileSet>
  ,,,,,,,& lt; fileSet>
  ,,,,,,,,,,,& lt; directory> src/主/resources
  ,,,,,,,,,,,& lt; outputDirectory> logs
  ,,,,,,,,,,,& lt; fileMode> 0755 & lt;/fileMode>
  ,,,,,,,,,,,& lt; excludes>
  ,,,,,,,,,,,,,,,& lt; exclude> * */* & lt;/exclude>
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

Springboot基于组装的服务化打包方案是怎样的