如何在PlantUML YAML中排除指定包以解决组件归属冲突问题
实现方法
你可以通过「优先匹配独立组件 + 通用规则排除指定包」的YAML配置实现需求,不需要修改现有组件的包标签:
1. 调整YAML组件匹配规则
PlantUML的组件映射规则支持exclude字段实现路径排除,同时规则优先级按声明顺序从上到下生效,配置示例如下:
# 组件映射YAML配置 componentRules: # 第一条规则优先匹配需要独立的包,直接绑定到Something组件 - component: Something pattern: com.xxx.yyy.common.somepkgs.** # 第二条规则匹配所有带common的包,同时排除刚才指定的路径 - component: Common pattern: "**common**" exclude: - com.xxx.yyy.common.somepkgs.**
2. 调整PlantUML图代码
不需要再把Something组件写在Common Layer的package块内,调整后写法如下:
package "Common Layer" { [Common] <<..common..>> } # Something组件会按照规则独立渲染,不会被归入Common Layer [Something] <<com.xxx.yyy.common.somepkgs>>
规则说明
- 优先级:先声明的规则优先级更高,
com.xxx.yyy.common.somepkgs下的所有类和子包会优先命中Something组件,不会被后续的common规则捕获 exclude字段支持通配符**匹配该路径下所有后代包/类,彻底避免该路径被通用规则命中
内容的提问来源于stack exchange,提问作者HellishHeat
相关产品推荐
相关产品推荐

