Plantuml - 组件和包的重新排列

Plantuml - Rearrangement of components and packages

我尝试按照第一个屏幕截图所示安排组件和包。有没有机会这样做(屏幕截图 1)

请在此处找到我当前的方法(屏幕截图 2)

此处为 uml 脚本:

@startuml
package "packageA" {
  [componentA]
}

package "packageB" {
  [componentB1] - [componentB2]
  [componentB2]
}

package "packageC" {
  [componentC1] - [componentC2]
  [componentC2]
}

package "packageD" {
  [componentD]
}



componentA --> componentB1
componentA --> componentC1
componentB2 -right-> [componentD]
componentC2 -right-> [componentD]

@enduml

从左到右的方向,省略包中的显式方向,你可以大致得到你想要的:

@startuml
left to right direction

skinparam package {
    backgroundColor Gray
}
skinparam component {
    backgroundColor Gold
}

package "packageA" {
  [componentA]
}
package "packageB" {
  [componentB1] -- [componentB2]
}
package "packageC" {
  [componentC1] -- [componentC2]
}
package "packageD" {
  [componentD]
}

componentA --> componentB1
componentA --> componentC1
componentB2 --> [componentD]
componentC2 --> [componentD]
@enduml

垂直对齐不好控制。我相信问题出在组件之间的 link 而可能有一些尝试对齐包。

在这方面,从上到下对齐可以更好地居中。在某些情况下也可以帮助添加一些 -[hidden]-> link 似乎也在 alignment/centering 中考虑在内,但在这种相当平坦的情况下它不会改变很多。

Demo