Ligne de commande

Vous pouvez exécuter PlantUML par une ligne de commande:

java -jar plantuml.jar file1 file2 file3

Cette commande va rechercher les @startXYZ dans file1, file2 et file3. Pour chaque diagramme, un fichier .png sera créé.

Pour traiter un répertoire en entier, vous pouvez aussi lancer:

java -jar plantuml.jar "c:/directory1" "c:/directory2"

Cela va rechercher les @startXYZ et @endXYZ dans tous les fichiers .c, .h, .cpp, .txt, .pu, .tex, .html, .htm ou .java des répertoires c:/directory1 et c:/directory1.

Caractères génériques

Vous pouvez aussi utiliser des caractères génériques:

Pour traiter tous les fichiers .cpp des répertoires dont le nom commence par dummy :

java -jar plantuml.jar "dummy*/*.cpp"

Pour traiter tous les fichiers .cpp des répertoires dont le nom commence par dummy, ainsi que leurs sous-répertoires:

java -jar plantuml.jar "dummy*/**.cpp"

Exclure des fichiers

Vous pouvez exclure certains fichiers en utilisant l'option -x:

java -jar plantuml.jar -x "**/common/**" -x "**/test/Test*" "dummy*/**/*.cpp"

Répertoire de sortie

Vous pouvez préciser un répertoire où seront générées toutes les images à l'aide de l'option -o:

java -jar plantuml.jar -o "c:/outputPng" "c:/directory2"

Si la commande parcourt récursivement plusieurs répertoires, il y a une petite différence selon que vous spécifiez un chemin absolu ou relatif pour ce répertoire de sortie:

Fichier de configuration

Vous pouvez fournir un fichier de configuration qui sera inclus avant chaque diagramme:

java -jar plantuml.jar -config "./config.cfg" dir1


After all preprocessing (includes etc), PlantUML saves the diagram's source code in the generated PNG Metadata in the form of encoded text.

Sounds like magic! No, merely clever engineering :-)


  java -jar plantuml.jar -metadata diagram.png > diagram.puml

Unfortunately this option works only with local files. It doesn't work with -pipe so you cannot fetch a URL with eg curl and feed the PNG to PlantUML.

However, the Plantuml server has a similar feature, where it can get a PNG from a URL and extract its metadata.

Code d'erreur

Quand il y a des erreurs dans un ou plusieurs diagrammes, la commande renvoie un code d'erreur (-1). Mais même s'il y a des diagrammes en erreur, tous les diagrammes sont générés, ce qui peut prendre du temps pour les projets de grande taille.

Vous pouvez utiliser l'option -failfast pour changer ce comportement et arrêter la génération des diagrammes dès qu'une erreur est rencontrée. Dans ce cas certains diagrammes seront effectivement générés et d'autres ne le seront pas.

Il y a aussi une option -failfast2 qui effectue une première passe de vérification. Si jamais une erreur est présente, aucun diagramme ne sera généré dans ce cas. En cas d'erreur, l'option -failfast2 permet à la commande de s'exécuter encore plus rapidement qu'avec -failfast ce qui peut être utile pour les très grands projets.

Entrée et sortie standard

Avec l'option -pipe vous pouvez facilement intégrer PlantUML dans vos scripts.

Lorsque l'option est activée, le texte du diagramme doit être envoyé à l'entrée standard de la commande et le fichier généré est récupéré dans la sortie standard. Aucun fichier n'est écrit sur disque.


type somefile.txt | java -jar plantuml.jar -pipe > somefile.png


Vous pouvez afficher un message d'aide à l'aide de la commande:

java -jar plantuml.jar -help

Cela imprime la sortie suivante:

Usage: java -jar plantuml.jar [options] -gui
(to execute the GUI)
    or java -jar plantuml.jar [options] [file/dir] [file/dir] [file/dir]
(to process files or directories)

You can use the following wildcards in files/dirs:
	*	means any characters but '\'
	?	one and only one character but '\'
	**	means any characters (used to recurse through directories)

where options include:
    -DVAR1=value                   Set a preprocessing variable as if '!define VAR1 value' were used
    -I/path/to/file                Include file as if '!include file' was used
    -I/path/to/*.puml              Include files with pattern
    -Sparam1=value                 Set a skin parameter as if 'skinparam param1 value' were used
    -author[s]                     Print information about PlantUML authors
    -charset xyz                   Use a specific charset (default is windows-1252).
                                   Use "utf-8" for extra international chars
    -checkmetadata                 Skip PNG files that don't need to be regenerated
    -checkonly                     Check the syntax of files without generating images
    -checkversion                  Check if a newer version is available for download
    -computeurl|-encodeurl         Compute the encoded URL of a PlantUML source file
    -config "file"                 Include a file before each diagram (same as -I ??)
    -cypher                        Cypher texts of diagrams so that you can share them
    -decodeurl                     Retrieve the PlantUML source from an encoded URL
    -disablestats                  Disable statistics computation (default)
    -duration                      Print the duration of complete diagrams processing
    -[exclude|x] pattern           Exclude files that match the provided pattern
    -enablestats                   Enable statistics computation
    -encodesprite 4|8|16[z] "file" Encode a sprite at gray level (z for compression) from an image
    -extractstdlib                 Extract PlantUML Standard Library into stdlib folder
    -failfast                      Stop processing as soon as a syntax error in diagram occurs
    -failfast2                     Do a first syntax check before processing files, to fail even faster
    -filename \"example.puml\"     Override %filename% variable
    -graphvizdot "exe"             Specify the graphviz "dot" executable.
                                   If needed, you can setup the environment variable GRAPHVIZ_DOT.
    -gui                           Run the graphical user interface
    -h[elp]                        Display this help message
    -htmlstats                     Output general statistics in file plantuml-stats.html
    -keepfiles                     Do NOT delete temporary files after processing
    -language                      Print the list of PlantUML keywords
    -loopstats                     Continuously print statistics about usage
    -metadata                      Retrieve PlantUML sources from PNG images
    -nbthread N                    Use N threads for processing
    -nbthread auto                 Use 4 threads for processing
    -nosuggestengine               Disable the suggest engine when errors in diagrams
    -o[utput] "dir"                Generate images in the specified directory
    -overwrite                     Allow overwriting of read-only files
    -p[ipe]                        Use stdin for PlantUML source and stdout for PNG/SVG/EPS generation
    -pattern                       Print the list of Regular Expression used by PlantUML
    -pipeNoStderr                  When used with -pipe, print errors to stdout (no image is generated in that case).
                                   The first line is "ERROR" and it respects -pipedelimitor
    -pipedelimitor "xyz"           When used with -pipe, append "xyz" after every image
    -pipeimageindex N              Generate only the N-th image when used with -pipe
    -pipemap                       Generate PNG map data of hyperlink rectangles, for use in HTML
    -preproc                       Output the preprocessed text of diagrams
    -printfonts                    Print fonts available on your system
    -progress                      Display a textual progress bar at the console
    -quiet                         Do NOT print error messages to the console
    -r[ecurse]                     Recurse through directories
    -realtimestats                 Generate statistics on the fly rather than at the end
    -splash                        Display a splash screen with some progress bar
    -stdlib                        Print standard library info
    -syntax                        Report any syntax error from standard input without generating images
    -teps                          Generate images using EPS format
    -testdot                       Test the installation of graphviz
    -thtml                         Generate HTML file for class diagram
    -tlatex                        Generate images using LaTeX/Tikz format
    -tlatex:nopreamble             Generate images using LaTeX/Tikz format without preamble
    -tpdf                          Generate images using PDF format
    -tpng                          Generate images using PNG format (default)
    -tscxml                        Generate SCXML file for state diagram
    -tsvg                          Generate images using SVG format
    -ttxt                          Generate images with ASCII art
    -tutxt                         Generate images with ASCII art using Unicode characters
    -tvdx                          Generate images using VDX format
    -txmi                          Generate XMI file for class diagram
    -v[erbose]                     Have log information
    -version                       Display information about PlantUML and Java versions
    -xmlstats                      Output general statistics in file plantuml-stats.xml