能否将当前Reactor依赖与外部下载依赖拆分为两类Assembly?
实现多模块Reactor依赖与外部依赖的分离打包
可以实现这个需求,无需依赖所有模块共享同一个groupId,具体配置方案如下:
1. 仅包含当前Reactor内依赖的Assembly配置
利用Maven内置的reactorProjects属性,精准匹配当前构建中的所有模块,配置如下:
<dependencySets> <dependencySet> <useProjectArtifact>true</useProjectArtifact> <includes> <!-- 自动匹配当前Reactor中所有模块的依赖 --> ${reactorProjects} </includes> </dependencySet> </dependencySets>
${reactorProjects}会自动展开为当前Reactor内所有模块的groupId:artifactId格式列表,能精准筛选本地构建的模块,不受groupId是否统一的限制。
2. 仅包含外部依赖的Assembly配置
同样借助reactorProjects属性排除当前Reactor内的模块,同时修正你示例中的标签错误(</exclude>需改为</excludes>),配置如下:
<dependencySets> <dependencySet> <excludes> <!-- 排除当前Reactor中所有模块的依赖 --> ${reactorProjects} </excludes> </dependencySet> </dependencySets>
补充说明
- 该方案要求Maven版本为3.2.1及以上(此版本开始支持
reactorProjects属性) - 相比依赖统一groupId的临时方案,此方法能更精准识别当前构建周期内的模块,适用性更强
内容的提问来源于stack exchange,提问作者Jakub Bochenski
相关产品推荐
相关产品推荐

