SpringCloud|SpringCloud maven-assembly-plugin 多级目录打包的实现

目录

  • 1、spring-boot-maven-plugin
  • 2、maven-assembly-plugin
  • 3、maven-assembly-plugin打包后的可执行文件缺失lib问题

1、spring-boot-maven-plugin springboot默认打包工具为spring-boot-maven-plugin
pom配置:
org.springframework.bootspring-boot-maven-plugincom.gsafety.bg.enterprise.EnterpriseApplicationZIPcom.gsafety.bgenterprise-controllercom.gsafety.bgenterprise-servicecom.gsafety.bgenterprise-daorepackage

打包后的目录结构:
SpringCloud|SpringCloud maven-assembly-plugin 多级目录打包的实现
文章图片

BOOT-INF内包含目录:lib(enterprise-service-1.0.0.jar、enterprise-dao-1.0.0.jar、enterprise-controller-1.0.0.jar)、classes、classpath.idx

2、maven-assembly-plugin maven-assembly-plugin 插件的主要作用是允许用户将项目输出与它的依赖项、模块、站点文档、和其他文件一起组装成一个可分发的归档文件,简单的说,就是自定义打包的工具,有自己的配置文件(Assembly描述符文件)。微服务使用这个插件的概率比较高,平时普通的项目不需要这样的实现方式。
pom配置:
maven-assembly-plugin2.4.1enterpriseutf-8src/main/assembly/assembly.xmlmake-assemblypackagesingle

assembly.xml
全部可设置节点可参考官网:http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html
1.0tar.gztruesrc/main/assembly/bindeploy0755targetapplication-server*.jarsrc/main/resourceslogs/enterprise0755**/*

打包后的目录结构:
SpringCloud|SpringCloud maven-assembly-plugin 多级目录打包的实现
文章图片

查看application-server文件夹内可执行文件解压目录:
SpringCloud|SpringCloud maven-assembly-plugin 多级目录打包的实现
文章图片

发现与spring-boot-maven-plugin打包后的目录不一致,明显缺少lib内的三个jar和其他一些文件

3、maven-assembly-plugin打包后的可执行文件缺失lib问题 修改pom文件:
【SpringCloud|SpringCloud maven-assembly-plugin 多级目录打包的实现】org.springframework.bootspring-boot-maven-plugincom.gsafety.bg.enterprise.EnterpriseApplicationZIPcom.gsafety.bgenterprise-controllercom.gsafety.bgenterprise-servicecom.gsafety.bgenterprise-daorepackageorg.apache.maven.pluginsmaven-dependency-plugincopy-dependenciesprepare-packagecopy-dependencies../../../libenterprise-controller,enterprise-service,enterprise-daomaven-assembly-plugin2.4.1enterpriseutf-8src/main/assembly/assembly.xmlmake-assemblypackagesingle

即plugins先引用spring-boot-maven-plugin 后引用maven-assembly-plugin,这样spring-boot-maven-plugin会将enterprise-service-1.0.0.jar、enterprise-dao-1.0.0.jar、enterprise-controller-1.0.0.jar三个jar打包到lib中,打包后maven-assembly-plugin就会将其打包进enterprise-1.0.tar.gz。
这样enterprise-1.0.tar.gz内就包含了启动文件(deploy)、可执行文件(application-server/enterprise-main-1.0.0.jar)、日志目录(logs/enterprise),符合目前项目部署的目录结构。

SpringCloud|SpringCloud maven-assembly-plugin 多级目录打包的实现
文章图片

到此这篇关于SpringCloud maven-assembly-plugin 多级目录打包的实现的文章就介绍到这了,更多相关SpringCloud maven-assembly-plugin 多级目录打包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读