maven打包tar.gz包第一篇

自写简书来,maven打包依赖到lib目录下是访问量最多的一篇,故打算比较系统的来讲讲maven将项目打包成一个tar.gz包的方式,最终所有的子项目只需要在pom.xml中,导入<parent>模块,并选中对应的打包方式与运行环境,执行maven package即可。
image.png

在介绍clife-data-parent项目前,先来讲讲打包方式与运行环境的区别:


一、打包方式


1.build-app与build-spark

  由于这两种打包方式都是打包成一个tar.gz包,存在很大的相似性,所以放在一起讲。这里以build-app为例,首先来瞧瞧打包后的包结构:
image.png

 1).bin目录

  用来存放当前项目的启动脚本,如图:


image.png

2).conf目录,存放当前项目的配置文件
 3).lib目录:存放项目依赖以及当前项目代码,如下图:


image.png

  build-spark与build-app生成的包,主要区别在bin下的脚本内容不一样,以及主项目jar,与bin同一级目录,不能存在与lib目录内,如下图:
image.png

2.build-jar
  这种打包方式就是将当前项目打包成一个单独的jar文件,不包含依赖,以供其他项目导入。如果进行maven install到共同的maven仓库,其他开发人员只需要配置对应的maven仓库即可引入这个jar,这种模式对于工具包和服务依赖上存在很好的解耦性。
3.build-web

  这是将项目打包成一个war包,在java web开发很常用。


二、运行环境


对于运行环境,这里很好理解,一般正常的项目发布环境流程包含了:开发->测试->预发布->正式,不同的环境具体的配置项会存在差异,这里通过resource-xxx来进行环境的区分,默认打包resource,勾选不同额环境,在打包后cong目录下就会打包不同环境下的配置文件。当然,这种配置管理的方式并不是最优的,这里推荐使用百度的disconf,具体如何使用参照百度disconf接口文档

image.png

这种项目打包方式,1.可以有效的减少项目发布时的人工操作;2.可以解耦多项目间的耦合性;3.对于协同开发有着很好的作用。下一次来具体讲讲parent模块。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,103评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,344评论 6 342
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 4,438评论 0 5
  • 简介 概述 Maven 是一个项目管理和整合工具 Maven 为开发者提供了一套完整的构建生命周期框架 Maven...
    闽越布衣阅读 4,578评论 6 39
  • 午饭过后,沿着开发区走了一圈,阳光耀眼外,便是路边景色的迷人。蝴蝶兰、油菜花、不知名的树新叶是红色的,颜色...
    唐的谱阅读 313评论 0 0

友情链接更多精彩内容