Skip to content

Tools to generate a living documentation from Java project

License

Notifications You must be signed in to change notification settings

jboz/living-documentation

Repository files navigation

Make a pull request License Maven Central

Read CONTRIBUTING file to contrib and check the backlog on the trello board : https://trello.com/b/pabtQSZG/living-documentation

Living documentation tools

Here is the mono-repository of many tools that will help you to generate a living documentation of your code.

This project is intended to provide some tools to allow a nice Living Documentation.

It based on Asciidoctor, Plantuml Builder, and other nice tools…​

See examples to show the powerfull ! You’ll be able to generate beautiful documents with a simple configuration. Create a living documentation from the code automatically. Easily customizable.

With or without annotations.

This java project is made of :

  1. Some java annotations (like UbiquitousLanguage annotation), but not mandatory

  2. A fully customizable maven plugin

Asciidoctor Diagram javaClasses diagram

And a business glossary (with asciidoc syntax, also in table format)

Add gherkin description :

You can also integrate gherkin files like this example : Microservice example generated index file

If you want to separate gherkins files look at this example: Domain Driven Design

Also allow to publish generated docs to confluence :

Publish specific HTML version to Altassian Confluence Server.

If you want to upload content to confluence look at this example: Domain Driven Design

Take care that you will have to use adoc format and let the publish goal to generate the html part. Asciidoctor will be tuned to generate confluence storage format. The plantuml macro will be overrided to allow the use of the confluence plantuml macro plugin. For that you have to use the <diagramAsPlantumlMacro>true</diagramAsPlantumlMacro> option.

With a light maven configuration :

<plugin>
    <groupId>ch.ifocusit.livingdoc</groupId>
    <artifactId>livingdoc-maven-plugin</artifactId>
    <version>1.2</version>
    <executions>
        <execution>
            <id>class-diagram</id>
            <phase>package</phase>
            <goals>
                <goal>diagram</goal>
                <goal>glossary</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <packageRoot>ch.ifocusit.telecom.domain</packageRoot>
        <interactive>true</interactive>
        <excludes>
            <exclude>.*domain.common.*</exclude>
        </excludes>
    </configuration>
</plugin>

See livingdoc-examples for more uses cases.

Coin des développeurs : readme développeur