如何使用 puml 图生成 javadoc?

Posted

技术标签:

【中文标题】如何使用 puml 图生成 javadoc?【英文标题】:How to generate javadoc with puml diagrams? 【发布时间】:2021-12-08 15:59:34 【问题描述】:

我正在尝试使用 Gradle 8.0(7.2) 集成的序列图生成我的 Javadoc。

我的 build.gradle :

apply plugin: "java"
apply plugin: "application"


mainClassName = 'com.twu.calculator.CalculatorApp'
group = 'calculator'
version = '1.0-SNAPSHOT'
description = "Calculator Console App"

repositories 
    mavenCentral()


dependencies 
    testImplementation 'junit:junit:4.12'
    testImplementation 'com.github.stefanbirkner:system-rules:1.16.1'


task renderPlantUml(type: RenderPlantUmlTask) 



javadoc 
    source = sourceSets.main.allJava
    options.overview = "src/main/javadoc/overview.html" // relative to source root
    options.addStringOption("sourcepath","$projectDir/src/main/javadoc")


javadoc.dependsOn renderPlantUml

// To execute the app
task runApp (type: JavaExec, dependsOn: classes)
    /* Can pass all the properties: */
    systemProperties System.getProperties()
    standardInput = System.in
    description = "Running the Calculator"
    main = "com.twu.calculator.CalculatorApp"
    classpath = sourceSets.main.runtimeClasspath


目前,预期的输出仅在我运行gradle javadoc的第二次完成,即以下步骤的顺序:

gradle renderPlantUml
gradle javadoc

这会导致overview.html 找不到如下图所示的图表。

overview.html

然后我需要重复上述命令,以便预期的输出是正确的。参考下图。

Expected output

我需要在我的build.gradle? 中更改什么

【问题讨论】:

【参考方案1】:

您需要配置 Javadoc 任务以复制要包含的文件,例如图像。

javadoc 
    doLast 
        copy 
            from('src/main/java')
            into("$buildDir/docs/javadoc/")
            include("**/doc-files/**/*")
        
    

将您的图像放在您的班级所在的同一个包中,该包位于名为 doc-files/ 的文件夹中

然后将它们包含在您的 Javadoc 中:

/**
 * <img src="doc-files/path/to/image.jpg">
 */

见https://github.com/gradle/gradle/issues/4046

【讨论】:

以上是关于如何使用 puml 图生成 javadoc?的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio自定义注释模板及生成JavaDoc

如何使用eclipse生成javadoc帮助文档

如何使用 gradle 从 Javadoc 跳过自动生成的类

editplus中如何设置生成javadoc说明文档的

Intellij IDEA如何生成JavaDoc?

idea中如何使用JavaDoc