如何在PlantUML中调整组件右侧端口位置避免名称被遮挡?
问题
使用PlantUML绘制架构图时,WebServer组件右侧的5个端口连线遮挡了组件名称,尝试调整端口位置但未成功。以下是当前使用的代码:
component "WebServer" as WS { port " " as P21 port " " as P22 port " " as P23 port " " as P24 port " " as P25 component "Web-GUI" as WG { port " " as P11 port " " as P12 port " " as P13 port " " as P14 port " " as P15 } } ' Connections between ports P21 -right- P11 P22 -right- P12 P23 -right- P13 P24 -right- P14 P25 -right- P15 @enduml``` 当前效果:WebServer组件的5个端口集中在右侧中间区域,连线直接穿过组件名称,导致名称被遮挡。 目标效果:WebServer组件的5个端口沿右侧垂直分布,连线从组件右侧边缘引出,不遮挡组件名称。 # 解决方案 可以通过指定端口的边缘位置,并调整连线逻辑来解决遮挡问题,以下是两种可行的修改方案: ## 方案一:将端口放在组件外部右侧 这种方式能清晰分离组件内部结构与外部端口,避免布局冲突: ```@startuml left to right direction component "WebServer" as WS { component "Web-GUI" as WG { port " " as P11 port " " as P12 port " " as P13 port " " as P14 port " " as P15 } } ' 把WebServer的端口定位在组件右侧,自动垂直排列 port " " as P21 on right of WS port " " as P22 on right of WS port " " as P23 on right of WS port " " as P24 on right of WS port " " as P25 on right of WS ' 连接端口,使用双向连线避免强制穿过多层组件 P21 -- P11 P22 -- P12 P23 -- P13 P24 -- P14 P25 -- P15 @enduml``` ## 方案二:在组件内部指定端口位置 如果需要保持端口在组件内部的嵌套结构,可通过`on right`参数明确端口位置: ```@startuml component "WebServer" as WS { ' 指定端口位于组件右侧边缘 port " " as P21 on right port " " as P22 on right port " " as P23 on right port " " as P24 on right port " " as P25 on right component "Web-GUI" as WG { ' 对应指定Web-GUI的端口在左侧边缘 port " " as P11 on left port " " as P12 on left port " " as P13 on left port " " as P14 on left port " " as P15 on left } } ' 使用普通连线让PlantUML自动规划路径,避免穿过组件名称 P21 -- P11 P22 -- P12 P23 -- P13 P24 -- P14 P25 -- P15 @enduml``` **核心调整点**: 1. 用`on right`/`on left`指定端口的边缘位置,让端口沿组件垂直方向分布,不再集中在中间区域。 2. 移除`-right-`这类强制方向的连线语法,让PlantUML自动生成合理的连线路径,避免穿过组件名称。 内容的提问来源于stack exchange,提问作者Altin Mag.
相关产品推荐
相关产品推荐

