前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第二十三章:SpringBoot项目多模块打包与部署

第二十三章:SpringBoot项目多模块打包与部署

作者头像
恒宇少年
发布2018-06-27 15:33:41
2.1K0
发布2018-06-27 15:33:41
举报

我们接上章节内容继续,上一章我们已经完成了多模块项目的创建以及运行,那我们线上环境该如何打包部署呢?

本章目标

打包部署SpringBoot多模块项目到外部运行Tomcat容器中。

构建项目

我们直接复制一份上一章的代码,如下图1所示:

图1

上图1 我们复制了chapter22项目源码,并且修改每个模块的pom.xml配置文件内的artifactId为chapter23。

Maven Install

我们如果现在直接执行pager子模块项目打包命令(maven package)maven会给我们提示没有找到所需要的user.jar因为我们的pager模块项目的pom.xml配置文件内引入了com.yuqiyu.user模块,如下图2所示

图2

在IDEA工具中给我们maven项目默认提供了常用到的命令我们直接使用就可以了,在项目的右侧有一个Maven Projects,如下图3所示:

图3

点击红色框焦点就会出现上图3所示的内容,展开任意一个Maven模块下都会存在三个模块Lifecycle(常用到的命令)、Plugins(插件)、Dependencies(项目部署所依赖的包列表)。

我们打包时一定要注意要从完全被依赖的项目开始

Bean Module Maven Install

因为我们的bean子项目是完全被依赖的,所以我们先从这个项目开始,点开Maven Projects后我们找到bean项目,展开Lifecycle选择 install命令双击开始执行打包,当我们执行maven install命令时会直接将我们工作空间内的项目直接生成jar包并且添加到本地maven仓库,这样我们在项目中就可以直接依赖使用,双击install命令后查看控制台输出日志,如下图4所示:

图4

可以看到我们的控制台已经输出了打包成功的日志,那我们直接去本地maven仓库查看是否已经存在,如下图5所示:

图5

可以看到已经在我们本地maven仓库存在,这样我们user模块就可以执行下面的打包操作,因为步骤一样我这里就不做一一解释了,同样的方式打包user项目(注意:所有被依赖都打包完成后才可以打包依赖项目)。

Pager Module Maven Package

所有的jar包依赖都执行打包完成后,我们开始进行pager项目的打包,因为我们的pager项目是一个web项目,我们只是需要生成后的war包部署到外部容器而已所以我们需要换一个命令package(打包到target目录下,并不会添加到maven仓库)

执行package命令后查看控制台日志输出,如下图6所示:

图6

我们可以看到控制台输出我们打包成功的日志,我们可以去target目录下查看已经有一个pager-1.0.0.war,打包的名称可以通过添加finalName参数修改,如下图7所示:

图7

先来执行clean命令后再执行package命令,这时target就会有一个pager.war存在。

统一打包方式

我们上面讲的是分步打包,我们完成可以在chapter23这个项目中执行maven package命令,这样所有的子模块以及父模块都会参与打包并且在在target目录下生成对应模块的jar或者war

点击Maven Projects选择chapter23执行命令clean,你就会发现所有项目的target目录都会被删除,下面我们来执行package命令查看效果如下图8所示:

图8

在控制台输出的内容与我们之前有所差异,我们在chapter23执行的package命令后maven会把chapter23本身以及所有的子模块项目都执行一遍package命令,并且你不需要考虑依赖问题,maven会自动去处理。

pager.war生成后复制到tomcat目录下的webapps内,运行tomcat访问就可以了,跟我们普通项目没有区别。

总结

以上内容就是本章的全部讲解,本章主要讲解了基于SpringBoot框架创建的多模块项目如何使用两种方式进行打包部署,当然建议使用第二种方式比较方便快捷不需要考虑依赖问题。

本章内容已经上传到码云

SpringBoot配套源码地址:https://gitee.com/hengboy/spring-boot-chapter

SpringCloud配套源码地址:https://gitee.com/hengboy/spring-cloud-chapter

SpringBoot相关系列文章请访问:目录:SpringBoot学习目录

QueryDSL相关系列文章请访问:QueryDSL通用查询框架学习目录

SpringDataJPA相关系列文章请访问:目录:SpringDataJPA学习目录

SpringBoot相关文章请访问:目录:SpringBoot学习目录,感谢阅读!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.05.06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本章目标
  • 构建项目
  • Maven Install
  • 统一打包方式
  • 总结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档