Ligne de commande
Vous pouvez exécuter PlantUML en utilisant la ligne de commande. (Voir " Exécution" pour les moyens d'exécuter PlantUML à partir de divers autres outils et flux de travail). La façon la plus simple de l'exécuter est la suivante :
java -jar plantuml.jar file1 file2 file3
Ceci recherchera
@startXYZ dans file1, file2 et file3. Pour chaque diagramme, un fichier .png sera créé.
Pour traiter un répertoire entier, vous pouvez utiliser :
java -jar plantuml.jar "c:/directory1" "c:/directory2"
Cette commande recherchera
@startXYZ et @endXYZ dans .txt, .tex, .java, .htm, .html, .c, .h, .cpp, .apt, .pu, .puml, .hpp, .hh ou les fichiers .md des répertoires c:/directory1 et c:/directory2.
Les images Docker sont publiées sous forme de paquets Github et sur Docker Hub.
docker run ghcr.io/plantuml/plantuml
New command-line interface (beta)
We are currently redesigning the PlantUML command-line options to better align with the GNU command-line standards.
This means:
- The new options follow consistent naming and structure.
- The legacy options will still be supported for a transition period, but they will no longer be documented.
plantuml - generate diagrams from plain text
Usage:
java -jar plantuml.jar [options] [file|dir]...
java -jar plantuml.jar [options] --gui
Description:
Process PlantUML sources from files, directories (optionally recursive), or stdin (-pipe).
Wildcards (for files/dirs):
* any characters except '/' and '\'
? exactly one character except '/' and '\'
** any characters across directories (recursive)
Tip: quote patterns to avoid shell expansion (e.g., "**/*.puml").
General:
-h, --help ....................... Show this help
--help-more .................. Show extended help (advanced options)
--version .................... Show PlantUML and Java version
--author ..................... Show information about PlantUML authors
--gui ........................ Launch the graphical user interface
--dark-mode .................. Render diagrams in dark mode
-v, --verbose .................... Enable verbose logging
--duration ................... Print total processing time
--progress-bar ............... Show a textual progress bar
--splash-screen .............. Show splash screen with progress bar
--check-graphviz ............. Check Graphviz installation
--http-server[:<port>] ....... Start internal HTTP server for rendering (default port : 4242)
Input & preprocessing:
-p, --pipe ....................... Read source from stdin, write result to stdout
-D<var>=<value>,
--define <VAR>=<value> ....... Define a preprocessing variable (equivalent to '!define <var> <value>')
-I<file>,
--include <file> ............. Include external file (as with '!include <file>')
-P<key>=<value>,
--pragma <key>=<value> ....... Set pragma (equivalent to '!pragma <key> <value>')
-S<key>=<value>,
--skinparam <key>=<value> .... Set skin parameter (equivalent to 'skinparam <key> <value>')
--theme <name> ............... Apply a theme
--config <file> .............. Specify configuration file
--charset <name> ............. Use a specific input charset
Execution control:
--check-syntax ............... Check diagram syntax without generating images
--stop-on-error .............. Stop at the first syntax error
--check-before-run ........... Pre-check syntax of all inputs and stop faster on error
--no-error-image ............. Do not generate error images for diagrams with syntax errors
--graphviz-timeout <seconds> Set Graphviz processing timeout (in seconds)
--threads <n|auto> ........... Use <n> threads for processing (auto = available processors)
Metadata & assets:
--extract-source ............. Extract embedded PlantUML source from PNG or SVG metadata
--disable-metadata ........... Do not include metadata in generated files
--skip-fresh ................. Skip PNG/SVG files that are already up-to-date (using metadata)
--sprite <4|8|16[z]> <file> .. Encode a sprite definition from an image file
--obfuscate .................. Obfuscate diagram texts for secure sharing
--encode-url ................. Generate an encoded PlantUML URL from a source file
--decode-url <string> ........ Decode a PlantUML encoded URL back to its source
--list-keywords .............. Print the list of PlantUML language keywords
--dot-path <path-to-dot-exe> Specify the path to the Graphviz 'dot' executable
--ftp-server ................. Start a local FTP server for diagram rendering (rarely used)
Output control:
--output-dir <dir> ........... Generate output files in the specified directory
--overwrite .................. Allow overwriting of read-only output files
--exclude <pattern> .......... Exclude input files matching the given pattern
Output format (choose one):
--format <name>, -f <name> ... Set the output format for generated diagrams
(e.g. png, svg, pdf, eps, latex, txt, utxt)
Available formats:
--eps ........................ Generate images in EPS format
--html ....................... Generate HTML files for class diagrams
--latex ...................... Generate LaTeX/TikZ output
--latex-nopreamble ........... Generate LaTeX/TikZ output without preamble
--pdf ........................ Generate PDF images
--png ........................ Generate PNG images (default)
--scxml ...................... Generate SCXML files for state diagrams
--svg ........................ Generate SVG images
--txt ........................ Generate ASCII art diagrams
--utxt ....................... Generate ASCII art diagrams using Unicode characters
--vdx ........................ Generate VDX files
--xmi ........................ Generate XMI files for class diagrams
-preproc ..................... Output preprocessor text of diagrams
Statistics:
--disable-stats .............. Disable statistics collection (default behavior)
--enable-stats ............... Enable statistics collection
--export-stats-html .......... Export collected statistics to an HTML report and exit
--export-stats ............... Export collected statistics to a text report and exit
--html-stats ................. Output general statistics in HTML format
--xml-stats .................. Output general statistics in XML format
--realtime-stats ............. Generate statistics in real time during processing
--loop-stats ................. Continuously print usage statistics during execution
Examples:
# Process all .puml recursively
java -jar plantuml.jar "**/*.puml"
# Check syntax only (CI)
java -jar plantuml.jar --check-syntax src/diagrams
# Read from stdin and write to stdout (SVG)
cat diagram.puml | java -jar plantuml.jar --svg -pipe > out.svg
# Encode a sprite from an image
java -jar plantuml.jar --sprite 16z myicon.png
# Use a define
java -jar plantuml.jar -DAUTHOR=John diagram.puml
# Change output directory
java -jar plantuml.jar --format svg --output-dir out diagrams/
Exit codes:
0 Success
>0 Error (syntax error or processing failure)
See also:
java -jar plantuml.jar --help-more
Documentation: https://plantuml.com
Thanks for your help and feedback!
Caractères génériques
Vous pouvez aussi utiliser des caractères génériques:
- Pour un caractère unique, utilisez
? - Pour plusieurs caractères (y compris zéro caractères), utilisez
* - Si vous voulez aussi inclure les caractères spéciaux
/et\), utilisez une double étoile**
.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 spécifier un répertoire de sortie pour toutes les images en utilisant le commutateur -o
java -jar plantuml.jar -o "c:/outputPng" "c:/directory2"
Si vous faites une récursion dans plusieurs répertoires, il y a une légère différence si vous fournissez un chemin absolu ou relatif pour ce répertoire de sortie :
- Un chemin absolu garantira que toutes les images sont sorties dans un seul répertoire spécifique.
- Si vous fournissez un chemin relatif, alors les images sont placées dans ce répertoire par rapport à l'emplacement du fichier d'entrée, et non dans le répertoire courant (note : ceci s'applique même si le chemin commence par un
.). Lorsque Plantuml traite des fichiers provenant de plusieurs répertoires, la structure de répertoire correspondante est créée sous le répertoire de sortie calculé
Types de fichiers de sortie
Les images de vos diagrammes peuvent être exportées dans différents formats. Par défaut, le format sera un fichier PNG mais un autre type peut être sélectionné en utilisant les extensions suivantes
| Nom du paramètre | Nom court du paramètre | Format de sortie | Commentaire |
-tpng
|
-png
|
PNG | Défaut |
-tsvg
|
-svg
|
SVG | Plus de détails sont disponibles ici |
-teps
|
-eps
|
EPS | Plus de détails peuvent être trouvés ici |
-teps:text
|
-eps:text
|
EPS | Cette option permet de conserver le texte en tant que texte |
-tpdf
|
-pdf
|
Plus de détails peuvent être trouvés ici | |
-tvdx
|
-vdx
|
VDX | Document Microsoft Visio |
-txmi
|
-xmi
|
XMI | De plus amples informations sont disponibles ici |
-tscxml
|
-scxml
|
SCXML | |
-thtml
|
-html
|
HTML | Caractéristique alpha : ne pas utiliser |
-ttxt
|
-txt
|
ATXT | Art ASCII. Vous trouverez plus de détails ici |
-tutxt
|
-utxt
|
UTXT | art ASCII utilisant des caractères Unicode |
-tlatex
|
-latex
|
LATEX | De plus amples informations sont disponibles ici |
-tlatex:nopreamble
|
-latex:nopreamble
|
LATEX | Ne contient pas de préambule LaTeX créant un document |
-tbraille
|
-braille
|
PNG | Image en braille [Ref. QA-4752] |
java -jar plantuml.jar yourdiagram.txt -ttxt
WARNING
This translation need to be updated. WARNING
Fichier de configuration
Vous pouvez fournir un fichier de configuration qui sera inclus avant chaque diagramme:
java -jar plantuml.jar -config "./config.cfg" dir1
Métadonnées
Après tous les prétraitements (inclusions, etc.), PlantUML enregistre le code source du diagramme dans les métadonnées PNG générées sous forme de texte encodé.
- Si vous ne voulez pas que PlantUML enregistre le code source du diagramme dans les métadonnées PNG générées, vous pouvez, pendant la génération, utiliser l'option
-nometadatapour désactiver cette fonctionnalité (pour NE PAS exporter les métadonnées dans les fichiers PNG/SVG générés). - Il est possible de récupérer cette source avec l'option
-metadata. Cela signifie que le PNG est presque "éditable" : vous pouvez le poster sur un wiki d'entreprise où vous ne pouvez pas installer de plugins, et quelqu'un dans le futur peut mettre à jour le diagramme en récupérant les métadonnées, en les éditant et en les rechargeant à nouveau. De plus, le diagramme est autonome. - A l'inverse, l'option
-checkmetadatavérifie si le PNG cible a la même source et s'il n'y a pas de changement, ne régénère pas le PNG, économisant ainsi tout le temps de traitement. Cela vous permet d'exécuter PlantUML sur un dossier entier (ou un arbre avec l'option-recursive) de manière incrémentale.
java -jar plantuml.jar -metadata diagram.png > diagram.puml
Malheureusement, cette option ne fonctionne qu'avec les fichiers locaux. Elle ne fonctionne pas avec
-pipe donc vous ne pouvez pas récupérer une URL avec par exemple curl et envoyer le PNG à PlantUML.
Cependant, le serveur Plantuml a une fonctionnalité similaire, où il peut récupérer un PNG à partir d'une URL et extraire ses métadonnées
WARNING
This translation need to be updated. WARNING
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.
Rapport standard [stdrpt]
En utilisant l'option -stdrpt (rapport standard), vous pouvez changer le format de la sortie d'erreur de vos scripts PlantUML.
Avec cette option, une sortie d'erreur différente de votre diagramme est possible
-stdrpt-stdrpt:1-
-stdrpt:2
file1.pu, où as est écrit aass
@startuml
participant "Famous Bob" aass Bob
@enduml
Sans aucune option
java -jar plantuml.jar file1.pu
La sortie d'erreur est
Error line 2 in file: file1.pu
Some diagram description contains errors
Option -stdrpt
java -jar plantuml.jar -stdrpt file1.pu
La sortie d'erreur est
file1.pu:2:error:Syntax Error?
-stdrpt:1 option
java -jar plantuml.jar -stdrpt:1 file1.pu
La sortie d'erreur est
protocolVersion=1
status=ERROR
lineNumber=2
label=Syntax Error?
Error line 2 in file: file1.pu
Some diagram description contains errors
-stdrpt:2 option (comme -stdrpt)
java -jar plantuml.jar -stdrpt:2 file1.pu
Le message d'erreur est le suivant
file1.pu:2:error:Syntax Error?
WARNING
This translation need to be updated. WARNING
Entrée et sortie standard
En utilisant l'option -pipe, vous pouvez facilement utiliser PlantUML dans vos scripts.
Avec cette option, une description de diagramme est reçue par l'entrée standard et le fichier PNG est généré sur la sortie standard. Aucun fichier n'est écrit sur le système de fichiers local.
Exemple
cat somefile.puml | java -jar plantuml.jar -pipe > somefile.png
L'option
-pipemap peut être utilisée pour générer des données cartographiques PNG (rectangles d'hyperliens) pour une utilisation en HTML, par exemple
cat somefile.puml | java -jar plantuml.jar -pipemap > somefile.map
Le fichier de carte ressemble à ceci
<map id="plantuml_map" name="plantuml_map">
<area shape="rect" id="id1" href="http://plantuml.com" title="http://plantuml.com"
alt="" coords="1,8,88,44"/>
</map>
Note : Regardez aussi
-pipedelimitor et -pipeNoStderr pour implémenter le multiplexage correct de plusieurs PNG dans un flux (dans le cas où le fichier puml contient plusieurs diagrammes), et la gestion des erreurs
Aide
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:
-gui To run the graphical user interface
-tpng To generate images using PNG format (default)
-tsvg To generate images using SVG format
-teps To generate images using EPS format
-tpdf To generate images using PDF format
-tvdx To generate images using VDX format
-txmi To generate XMI file for class diagram
-tscxml To generate SCXML file for state diagram
-thtml To generate HTML file for class diagram
-ttxt To generate images with ASCII art
-tutxt To generate images with ASCII art using Unicode characters
-tlatex To generate images using LaTeX/Tikz format
-tlatex:nopreamble To generate images using LaTeX/Tikz format without preamble
-o[utput] "dir" To generate images in the specified directory
-DVAR1=value To set a preprocessing variable as if '!define VAR1 value' were used
-Sparam1=value To set a skin parameter as if 'skinparam param1 value' were used
-Ppragma1=value To set pragma as if '!pragma pragma1 value' were used
-I\path\to\file To include file as if '!include file' were used
-I\path\to\*.puml To include files with pattern
-theme xxx To use a specific theme
-charset xxx To use a specific charset (default is windows-1251)
-e[x]clude pattern To exclude files that match the provided pattern
-metadata To retrieve PlantUML sources from PNG images
-nometadata To NOT export metadata in PNG/SVG generated files
-checkmetadata Skip PNG files that don't need to be regenerated
-version To display information about PlantUML and Java versions
-v[erbose] To have log information
-quiet To NOT print error message into the console
-debugsvek To generate intermediate svek files
-h[elp] To display this help message
-testdot To test the installation of graphviz
-graphvizdot "exe" To specify dot executable
-p[ipe] To use stdin for PlantUML source and stdout for PNG/SVG/EPS generation
-encodesprite 4|8|16[z] "file" To encode a sprite at gray level (z for compression) from an image
-computeurl|-encodeurl To compute the encoded URL of a PlantUML source file
-decodeurl To retrieve the PlantUML source from an encoded URL
-syntax To report any syntax error from standard input without generating images
-language To print the list of PlantUML keywords
-checkonly To check the syntax of files without generating images
-failfast To stop processing as soon as a syntax error in diagram occurs
-failfast2 To do a first syntax check before processing files, to fail even faster
-noerror To skip images when error in diagrams
-duration To print the duration of complete diagrams processing
-nbthread N To use (N) threads for processing
-nbthread auto To use 4 threads for processing
-timeout N Processing timeout in (N) seconds. Defaults to 15 minutes (900 seconds).
-author[s] To print information about PlantUML authors
-overwrite To allow to overwrite read only files
-printfonts To print fonts available on your system
-enablestats To enable statistics computation
-disablestats To disable statistics computation (default)
-htmlstats To output general statistics in file plantuml-stats.html
-xmlstats To output general statistics in file plantuml-stats.xml
-realtimestats To generate statistics on the fly rather than at the end
-loopstats To continuously print statistics about usage
-splash To display a splash screen with some progress bar
-progress To display a textual progress bar in console
-pipeimageindex N To generate the Nth image with pipe option
-stdlib To print standard library info
-extractstdlib To extract PlantUML Standard Library into stdlib folder
-filedir xxx To behave as if the PlantUML source is in this dir (only affects '-pipe' and PicoWeb 'POST /render')
-filename "example.puml" To override %filename% variable
-preproc To output preprocessor text of diagrams
-cypher To cypher texts of diagrams so that you can share them
-picoweb To start internal HTTP Server. See https://plantuml.com/picoweb
If needed, you can setup the environment variable GRAPHVIZ_DOT.
WARNING
This translation need to be updated. WARNING