本篇当中重点记录微服务项目(maven父子级项目)打包插件,文章没有一句废话, 就是直接复制粘贴到自己项目就可以用,亲测有效!

目录

  • 一、项目层级结构
  • 二、继承了spring-boot-starter-parent
  • 三、未继承spring-boot-starter-parent
  • 四、打包流程

一、项目层级结构

这是最近做的微服务练习,项目是一个典型的聚合工程,mscloud的依赖就是用来管理版本号的,所有微服务有一个公共的依赖模块,就是专门存放util相关的common模块。

在实际开发当中层级结构大同小异,有的甚至会将service、dao都拆分成单独的模块。但是对于打包来说,是一样的。

关于ider创建聚合项目不熟练的,可以看一下我的这一篇文章:
https://blog.csdn.net/weixin_43888891/article/details/125267683


针对于打包我写了两种情况,一种是项目继承了spring-boot-starter-parent,一种是项目没有继承spring-boot-starter-parent的情况。

二、继承了spring-boot-starter-parent

如果项目继承了spring-boot-starter-parent,那我们可以直接在需要打jar包的子工程引入spring-boot-maven-plugin的依赖即可,不需要的不用引入,像common这些属于依赖包,并不是要直接运行的工程,他可能连启动类都没有,并不需要添加插件,添加了反而可能会报错,插件的作用是将依赖的jar一并打包到当前项目的jar当中,组成一个可直接运行的jar。

<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

之所以只需要引入spring-boot-maven-plugin并不做该插件的任何配置,原因是spring-boot-starter-parent当中的pom已经为我们做了插件依赖管理。也就是做了该插件的相关配置。

父工程可以选择性引入(可引可不引)该插件来跳过单元测试:

<build><plugins><plugin><artifactId>maven-surefire-plugin</artifactId><!-- 打包跳过单元测试 --><configuration><skipTests>true</skipTests><testFailureIgnore>true</testFailureIgnore></configuration></plugin>
</build>

三、未继承spring-boot-starter-parent

假如项目没有继承spring-boot-starter-parent,那我们就需要手动添加插件了。

父工程添加打包依赖:

<build><plugins><plugin><artifactId>maven-surefire-plugin</artifactId><!-- 打包跳过单元测试 --><configuration><skipTests>true</skipTests><testFailureIgnore>true</testFailureIgnore></configuration></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>utf-8</encoding></configuration></plugin></plugins>
</build>

子工程打包依赖:

关于spring-boot-maven-plugin插件不了解的可以看我的这一篇文章:
https://blog.csdn.net/weixin_43888891/article/details/122523633

关于Maven当中resources标签不懂的可以看我的这一篇文章:
https://blog.csdn.net/weixin_43888891/article/details/122406081

本次依赖当中并没有用到resources标签,resources标签一般是当我们打出来的jar包少文件的时候会配置,但是基于上面项目案例,使用本篇文章的依赖打包 并没有出现少文件的情况所以没用到。

<build><!-- 打出来的jar包名 --><finalName>consumer-consul</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.4.2</version><configuration><!-- 主启动类全类名 --><mainClass>com.gzl.cn.OrderConsulMain80</mainClass></configuration><executions><execution><goals><!--可以把依赖的包都打包到生成的Jar包中--><goal>repackage</goal></goals></execution></executions></plugin></plugins>
</build>

四、打包流程

一定是clean install根项目,也就是父项目,原因就是common项目是其他服务所依赖的项目,假如common有变化,而你只是clean install单个的微服务,这时候就会出现common新加的代码,你并没有依赖进去,如果你项目用到了common新加的类,这时候打包可能直接就报错了。

微服务项目(maven父子级项目)怎么打包相关推荐

  1. Maven父子结构的项目依赖使用以及打包依赖_微服务项目(maven父子级项目)怎么打包

    Maven父子结构的项目依赖使用以及打包依赖 1:在父子结构项目中,如果要是用其他模块的类.在当前项目中的pom中 加入 其他模块的配置 <dependency><groupId&g ...

  2. springcloud 子项目怎么导入_「 从0到1学习微服务SpringCloud 」09 补充篇-maven父子模块项目...

    系列文章(更新ing): 作为微服务的项目,如果将每个项目都拆成一个完整的项目,很难开发,那得打开多少个idea.应该将它们归到一个项目里,使用maven父子模块项目的形式,如下图 之前我们项目的拆成 ...

  3. 【微服务架构】基础的微服务架构模板、fianceCampus项目

    OfferCampus前期构建简单介绍: 搭建完整的模板Spring Cloud项目 内容管理 SpringCloud 项目 脚手架项目 ---- financeCapmus 项目结构 创建父项目(j ...

  4. 微服务(SpringCloud)入门项目——外卖订单系统

    文章目录 需求分析 总体设计 详细设计 编码过程: 编码完成,看看效果图 补充项目sql脚本 本项目源码: https://github.com/liuwen766/OrderSystem.git 项 ...

  5. spring cloud微服务分布式云架构 - common-service 项目构建过程

    欢迎大家和我一起学习spring cloud构建微服务云架构,我这边会将近期研发的spring cloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发spring cloud框架的朋友,大 ...

  6. Spring Cloud微服务分布式云架构—集成项目简介

    Spring Cloud集成项目有很多,下面我们列举一下和Spring Cloud相关的优秀项目,我们的企业架构中用到了很多的优秀项目,说白了,也是站在巨人的肩膀上去整合的.在学习Spring Clo ...

  7. 微服务架构案例(01):项目技术选型简介,架构图解说明

    本文源码:GitHub·点这里 || GitEE·点这里 一.单体架构 单体架构在中等偏小的业务中比较常见,场景模式就是单个应用.单个数据库.一个程序包(例如war格式或者Jar格式)包含所有业务需求 ...

  8. 微服务:实战从传统项目平滑过渡 - 笔记

    什么是微服务 服务之间无依赖,可插拔 不主动(不主动提供数据/上下线不通知/不告诉你服务内容) 不拒绝(只要遵循接口规范,任何客户端都可以调用.应该由注册中心负责负载均衡.) 不负责(A调用B,如果没 ...

  9. maven安装、配置以及IDEA创建maven项目(Maven的Web项目)

    1. Maven下载.安装 去Maven官网下载相应的maven版本(一般maven和jdk版本有对应关系,jdk1.8对应maven3.3.9),下载后解压到你想放的位置即可. 2. Maven配置 ...

  10. XML电子口岸自动报关项目 真实百万级项目下载

    我在迅雷网盘发现了"XML电子口岸自动报关项目",真实百万级项目,针对广州海关总署国际速递邮件报关不及时,报关信息不准确,致使海关监管力度薄弱,广航邮件出口延误等情况,开发电子口岸 ...

最新文章

  1. 如何学习Python开源项目代码
  2. REST框架的问题--备忘
  3. python下载图片的命令_网上的图片不知道怎么批量下载?python教你怎么把网站上面的图片都爬下来...
  4. 测试SqlHelp,linq to SQL,Nhibernate批量处理数据的效率 2009-06-07
  5. autojs命令代码大全_各个主流品牌手机的命令代码大全,安卓工程模式的指令大全!...
  6. win11开机记录如何查看 Windows11查看开机记录的设备方法
  7. 绘制直方图,计算CPK、PPK等数据
  8. 8086CPU工作原理
  9. 【分享】RSS订阅技巧及工具和实用RSS链接分享
  10. Radio Dream流媒体直播平台基于Docker的应用
  11. html肤质测试,皮肤致敏试验
  12. centos7配置tomcat环境变量
  13. python淘宝_python实现淘宝购物系统
  14. 解决标题党的计算机算法用户app,今日头条算法工程师:做好推荐必须打击标题党...
  15. 微信的聊天记录删除了还能恢复吗
  16. 艾司博讯:拼多多冲销量的方法有哪些?
  17. 浪潮服务器开启远程管理,浪潮服务器远程管理汇编.docx
  18. 二本计算机专业 考研究生,二本可以考上985的研究生吗?
  19. 基于阿里云oss的文件管理系统
  20. 中国最具影响力商界女性榜单揭晓:VIPKID创始人米雯娟连续两年登榜

热门文章

  1. 【移动】获取客户微信号信息
  2. 计算机病毒传播媒介分类及源代码示例
  3. Session 0x0 for sever , Closing socket connection. Attempting reconnect except it is a SessionExpire
  4. np.linespace使用方法
  5. 【云计算网络安全】DDoS 攻击类型:什么是 ACK 洪水 DDoS 攻击
  6. Linux命令之grep -w
  7. hdu2586[lca离线tarjon算法][递归与非递归]
  8. GNSS blanking
  9. 【年底总结】一丝不“狗”,“猪”事顺利
  10. 海印股份去年营收下降近半、拟清仓所持中邮消金股份,后者近年诉讼数激增