PlantUML组件图如何设置port端口显示在组件垂直边缘
PlantUML组件端口贴合垂直边缘配置方法
原有问题代码
@startuml skinparam componentStyle rectangle component A1 { port P1 [E1] [E2] [E1] -r-> [E2] [E2] -r-> P1 } component A2 { port P2 [E1] as e P2 -r-> e } P1 -r-> P2 @enduml
原有渲染效果

上述代码将port声明写在组件内部块中,PlantUML会默认把端口识别为内部元素参与排布,无法自动吸附到组件垂直边缘,和预期效果存在差异。
调整方案
核心修改点
- 调整端口声明逻辑:不再将port写在component的大括号块内,先声明组件本身,再通过
port 端口名 at 组件名 方位语法直接把端口绑定到组件指定边缘,方位支持left/right/top/bottom四个方向 - 增加端口样式配置:通过skinparam统一设置端口形状、边框、填充色,匹配参考图的视觉效果
- 内部逻辑完全保留:组件内的元素、连接关系不需要改动,仅调整端口声明规则即可
调整后完整代码
@startuml skinparam componentStyle rectangle ' 配置端口样式为矩形,和参考效果一致 skinparam port { BackgroundColor white BorderColor black Shape rectangle } ' 提前声明绑定在组件边缘的端口 component A1 port P1 at A1 right component A2 port P2 at A2 left ' 定义组件内部结构与连接 A1 { [E1] [E2] [E1] -r-> [E2] [E2] -r-> P1 } A2 { [E1] as e P2 -r-> e } ' 组件间端口连接 P1 -r-> P2 @enduml
预期实现效果

调整后P1会固定显示在A1的右侧垂直边缘,P2固定显示在A2的左侧垂直边缘,所有原有连接关系保持不变。
内容的提问来源于stack exchange,提问作者chuong vo
相关产品推荐
相关产品推荐

