A taglet @plantuml that generated in-place diagram images (png) in the html javadoc files.
/**
* Created PlantUML Diagrams based on a plantuml description.
* @plantuml
* PlantumlImageDataFactory : +getImageData(plantuml: String): String
*/
public class PlantumlImageDataFactory {
/**
* A Taglet made by me to convert appropriate Plantuml codes into generated diagrams. Uses layout smetana instead
* of GraphViz.
* @plantuml
* <!--
* interface Taglet
* class PlantumlTaglet
* Taglet <|.. PlantumlTaglet
* class Location
* Taglet : +getAllowedLocations(): Set<Location>
* Location o-left- Taglet
* PlantumlImageDataFactory o-left- PlantumlTaglet
* PlantumlImageDataFactory : + {static} getImageData(plantuml: String): String
* -->
* @see <a href="https://mnlipp.github.io/jdrupes-taglets/plantuml-taglet/javadoc/index.html">PlantUML Taglet</a>
*/
public class PlantumlTaglet implements Taglet {
This generates javadoc for class PlantumlTaglet.
javadoc -taglet org.taglet.plantuml.PlantumlTaglet -tagletpath /Users/user/git/plantumltaglet/target/plantumltaglet-1.0-SNAPSHOT-jar-with-dependencies.jar /Users/user/git/plantumltaglet/src/main/java/org/taglet/plantuml/PlantumlTaglet.java
mvn javadoc:javadoc
Generates javadoc into the usual place: target/site/apidocs. Access it by opening target/site/apidocs/index.html
Attention: it means you should have this artifact in your maven .m2/repository map somewhere, otherwise it cannot find the custom taglet.
Just add the custom taglet to your maven-javadoc-plugin in your pom.xml, like so:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<taglet>org.taglet.plantuml.PlantumlTaglet</taglet>
<!-- <tagletpath>/path/to/taglet.jar</tagletpath> -->
<tagletArtifact>
<groupId>org.taglet.plantuml</groupId>
<artifactId>plantumltaglet</artifactId>
<version>1.1-SNAPSHOT</version>
</tagletArtifact>
</configuration>
</plugin>
In the generated JavaDocs, the image will be present as raw data.
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/jdk.javadoc/jdk/javadoc/doclet/Taglet.html" title="class or interface in jdk.javadoc.doclet" class="external-link">Taglet</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">PlantumlTaglet</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements <a href="https://docs.oracle.com/en/java/javase/17/docs/api/jdk.javadoc/jdk/javadoc/doclet/Taglet.html" title="class or interface in jdk.javadoc.doclet" class="external-link">Taglet</a></span></div>
<div class="block">A Taglet made by me to convert appropriate Plantuml codes into generated diagrams. Uses layout smetana instead
of GraphViz.</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="tag-list">
<li><a href="https://mnlipp.github.io/jdrupes-taglets/plantuml-taglet/javadoc/index.html">PlantUML Taglet</a></li>
</ul>
</dd>
<p><img alt="umldiagram" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhMAAAC2CAIAAADsj5gHAAAAKnRFWHRjb3B5bGVmdABHZW5lcmF0ZWQgYnkgaHR0cHM6Ly9wbGFudHVtbC5jb212z..." /></p></dl>
</section>
Using <!-- and --> to circumvent javadoc barfing on strange characters in your @plantuml tag.
The plantuml graphics layout is "smetana", NOT "GraphViz". This package should work fine without installing GraphViz!