You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Doxygen的ExportInterface组自动生成PlantUML接口图?

如何通过Doxygen组自动生成PlantUML接口图

可以通过调整Doxygen配置和文档注释,基于已有的ExportInterface组自动生成PlantUML接口图,无需手动编写每个函数签名。以下是具体实现步骤:

1. 调整Doxygen配置,启用内嵌PlantUML代码渲染

修改你的Doxyfile中的ALIASES配置,替换原有的startuml和enduml别名,让Doxygen直接处理内嵌的PlantUML代码:

ALIASES                = "project=\par Project: \n" \
                         "subsystem=\par Subsystem: \n" \
                         "history=\par History: \n\htmlonly <pre>" \
                         endhistory=</pre>\endhtmlonly \
                         "startuml=@startuml" \
                         "enduml=@enduml" \
                         "xrefreq{2}=@ref \1 \"\1\" @anchor \1 <a href='\2' target='_blank'>Requirements Object Link</a>\n" \
                         "satisfyreq{2}=@xrefitem satisfy \"Satisfies requirement\" \"Requirement Satisfaction\" @xrefreq{\1,\2}" \
                         "verifyreq{2}=@xrefitem verify \"Verifies requirement\" \"Requirement Verification\" @xrefreq{\1,\2}" \
                         "xrefarc{2}=@ref \1 \"\1\" @anchor \1 <a href='\2' target='_blank'>Containing Rhapsody Model</a>\n" \
                         "xrefarc_path{3}=@ref \1 \"\2\" @anchor \1 <a href='\3' target='_blank'>Containing Rhapsody Model</a>\n" \
                         "tracearc{2}=@xrefitem architecture \"Architecture\" \"Traced Architecture\" @xrefarc{\1,\2}" \
                         "tracearc_path{3}=@xrefitem architecture \"Architecture\" \"Traced Architecture\" @xrefarc{\1,\2,\3}" \
                         "startTraceIt{1}=<B>\anchor \1\nTraceIt data: \1</B><PRE>" \
                         endTraceIt=</PRE> \
                         "reftrace{1}=@anchor ref_\1 @ref \1" \
                         "reftrace{2}=@anchor ref\1_\2 @ref \2"

确保PLANTUML_JAR_PATH已正确配置(你的配置中已设置此路径),可额外添加PLANTUML_INCLUDE_PATH = .指定PlantUML文件搜索路径。

2. 在Doxygen组中插入自动生成接口图的注释

在定义ExportInterface组的位置(头文件或单独的.dox文档),添加以下注释:

/**
 * @defgroup ExportInterface 导出接口
 * @{
 * @startuml
 * interface "ExportInterface" as ExportInterface
 * {
 *   {method} \ref ExportInterface::function1
 *   {method} \ref ExportInterface::function2
 *   {method} \ref ExportInterface::function3
 * }
 * @enduml
 * 
 * 这里可以添加组的详细描述...
 * @}
 */

说明:

  • 使用\ref命令引用组内的每个函数,Doxygen会自动解析函数签名并在PlantUML图中显示。
  • 你的配置中EXTRACT_ALL=YES,所有被纳入ExportInterface组的函数都会被Doxygen提取,无需额外注释。

3. 可选:利用Doxygen内置UML图替代PlantUML

如果不需要严格使用PlantUML格式,Doxygen可基于Dot生成UML风格的组图,只需在Doxyfile中添加:

GROUP_GRAPHS = YES

启用后,Doxygen会自动为ExportInterface组生成包含所有成员的UML图,无需编写任何PlantUML代码,风格与PlantUML接近。

注意事项

  • 确保ExportInterface组已通过@ingroup ExportInterface正确包含所有需要展示的接口函数。
  • 若需隐藏私有/静态函数,可调整EXTRACT_PRIVATE=NO、EXTRACT_STATIC=NO等配置,仅显示公共接口。

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:35:18