Как сгенерировать javadoc с помощью диаграмм puml?

#gradle #build #javadoc #sequence-diagram

Вопрос:

Я пытаюсь сгенерировать свой Javadoc с помощью моих диаграмм последовательностей, интегрированных с использованием Gradle 8.0 (7.2).

мой 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

Затем мне нужно повторить приведенные выше команды, чтобы ожидаемый результат был правильным. Смотрите рисунок ниже для справки .

Ожидаемый результат

Что мне нужно изменить в моем 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