科技匠|程序员你的maven多模块项目如何对外输出为一个构件?( 二 )

org.apache.dubbodubbo-config-api${project.version}compiletrueorg.apache.maven.pluginsmaven-shade-pluginpackageshadetruefalsecom.alibaba:hessian-liteorg.apache.dubbo:dubbo-config-apiMETA-INF/dubbo/internal/org.apache.dubbo.common.compiler.CompilerMETA-INF/dubbo/internal/org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactoryorg.apache.dubbo:dubbocom/**org/**META-INF/dubbo/**为控制代码占用太多内容 , 上面贴的pom配置为删除了大量相同或者类似的节点 。 下面拆解一下它的结构:
核心节点说明dependency直接依赖 , 即包含的当前工程中的模块pluginshadeshade的核心配置
配置说明(见名知意 , 先猜测)phase挂接在maven的生命周期的package阶段goal提供唯一的goal指令 shadecreateSourcesJar是否创建源码到jar包中 , 方便ide直接查看到源码promoteTransitiveDependencies是否打包间接依赖artifactSet-includes-include包含的子模块或者排除的子模块transformers-transformer-resource转换器配置excludes>-filter过滤器中排出某些文件具体看上面的代码 。
科技匠|程序员你的maven多模块项目如何对外输出为一个构件?
实际项目参考dubbo , 也是添加shade插件 , 目的是只把多模块的class和resource统一到一个jar中统一使用 。
公司保密原因 , 不贴出来了 。
小结如果看完之后你只能记住一句话:
maven多模块开发可以使用shade插件对使用方输出一个构件 。
科技匠|程序员你的maven多模块项目如何对外输出为一个构件?
【科技匠|程序员你的maven多模块项目如何对外输出为一个构件?】我会持续分享Java软件编程知识和程序员发展职业之路!原创不易 , 关注诚可贵 , 转发价更高!转载请注明出处 , 让我们互通有无 , 共同进步 , 欢迎沟通交流 。


推荐阅读