科技匠|程序员你的maven多模块项目如何对外输出为一个构件?
上图为常见的台式机 , 程序员 , 你看了有啥启发?
台式机生产线我的maven代码工程 xxx显示器xxx-web主机xxx-app键盘xxx-domian鼠标xxx-infrastration台式机xxx-all.jar虽然不能完全对应的上 , 我拿开源的dubbo描述一下我的问题 。
dubbo开发者:dubbo的开源项目采用maven多模块开发的 , 内部模块分的非常细 。
充分利用了台式电脑的分模块设计思想 。
dubbo使用者:我只需要引入一个dubbo-all的依赖即可使用dubbo;
好比台式机的用户 , 我只需要一个可使用的台式机 , 按照使用手册来即可 , 内部的东西我不想知道;
只需要引入坐标:
背景最近的业务开发工作碰到过一个类似的问题 。
问题回答where are we?现状公共组件程序员开发采用多模块开发一个组件 , 业务程序员希望只引用一个组件where are we go?目的多模块开发一个公共组件 , 业务项目只需要引入一个模块how we go there?实现路径maven-shade-plugin实现路径shadeshade提供了一个把你的maven多模块构件和构件的依赖打包为一个超级jar包的能力 。
它绑定到了maven生命周期的package阶段 , 提供了唯一的mavn的goal指令shade:shade
它的系统运行环境要求是:
运行需求说明maven3最低maven3jdk7最低jdk7内存和磁盘无最低空间需求用法如下:
常见配置属性:
ApacheLicenseResourceTransformer
防止证书重复ApacheNoticeResourceTransformer
准备合并通知AppendingTransformer
作为资源添加ComponentsXmlResourceTransformer
聚合components.xml 从DontIncludeResourceTransformer
排除资源文件IncludeResourceTransformer
包含的资源文件ManifestResourceTransformer
manifest的条目ServicesResourceTransformer
合并meta-info/services 资源XmlAppendingTransformer
添加xml内容作为一个xml资源dubbo主要看dubbo-all模块的配置:
推荐阅读
- Auto王|轴距长等于空间大?这几款车将颠覆你的观点
- 幽默搞笑段子集锦|新郎不是你怎么办?,幽默笑话:要是你的女朋友结婚了
- 科技日报|塑料微粒影响几何?人类认知仍不足
- 七号人称说科技|华为始料未及?台积电又成了“炮灰”?新风暴说来就来
- 大众新闻|众安科技荣获“今日·保险中介榜”年度Insurtech独角兽
- 雷科技|朋友圈都在秀的“互联网勋章”到底是什么?
- 快科技|小米10至尊纪念版妙享功能升级:手机与Windows电脑合体
- 七号人称说科技|再给华为一颗糖?美国到底在打什么“算盘”?,先给华为一巴掌
- 量子科技,爆发!有项关键技术中国已领先世界
- 暖日科技盈如|这到底是为什么?,俄罗斯华人给出劝告:最好别跟俄罗斯女孩结婚
