PlantUML es usado para graficar diagramas UML, usando una descripción de texto simple y fácil de leer por humanos.
Ten cuidado, porque no te previene de graficar diagramas inconsistentes (por ejemplo tener dos clases que hereden entre si). Entonces es más una herramienta de dibujo que una de modelado. Enlaces a png o svg generados por PlantUML Server están activos por siempre (eso es siempre y cuando el servidor esté arriba).
Sin emargo, nosotros no almacenamos ningún diagrama en nuestros servidores. Esto puede sonar contradictorio. No es así: El diagrama completo es comprimido en la misma URL . Cuando el servidor recibe la URL, descomprime la URL para recuperar el texto del diagrama y generar la imagen. No hay necesidad de almacenar nada. Incluso cuando el servidor está abajo, tú puedes recuperar el diagrama usando el flag
-decodeurl con la linea de comando. Adicionalmente, los datos del diagrama son alamcenados in metadata PNG, así puedes buscarlos incluso desde una imagen descargada. Ocasionalmente podemos activar trazas HTTP en nuestro servidor. Esto es principalmente por problemas de rendimiento (cuando tenemos alguno) para entender el trafico que tenemos. Una vez el problema se resuelve, desactivamos las trazas HTTP y removemos los logs. Observa que también contamos el numero de diagramas generados (impresos en el home page) para medir la capacidad del servidor. Respecto a contenido sensible: incluso si no almacenamos diagramas generados, por favor ten en cuenta que todo el tráfico va a través de HTTP, por lo tanto es fácil de capturar. Por lo tanto, tal vez deberías instalar un servidor local en tu propia red si planeas generar diagramas con información sensible.
WARNING This translation need to be updated.
WARNINGPlantUML ha sido instalado en varios sistemas, y algunos usuarios reportaron problemas menores cuando lo instalaron.
Puedes mirar en esta pagina que te aconsejará si algo está mal. Acá encontrarás más información sobre Graphviz aquí. Las siguientes versiones han sido probadas, y se sabe que funcionan:
Observa que las versiones 2.39 y 2.42 no funcionan muy bien con PlantUML. With version 2.44, under Windows, you may have to run
dot -c in a command line to finalize the installation, like in the following example: You may have to run
dot -c with Administrator Right. Another option is to install Win32 version of GraphViz 2.44 which does not require this post-install process. Si compilas Graphviz tu mismo, tienes que crearla con libexpat para que funcione con PlantUML. Google Trends are somehow positive. And there are few books that mention PlantUML. So yes, it's mature. Note that PlantUML is developed with continuous integration in mind. That means that there are new releases quite often, with (hopefully!) backward compatibility. So the file
PlantUML.jar may changed over time, while keeping the same name. If you want to know the exact version you are using, you can type in the command line:
or use the following small special diagram description:
java -jar plantuml.jar -version
To check if a newer version is available for download, you can go to the download page. You can also subscribe to the following rss flows: Or you can use the command line:
Or use the following small special diagram description:
java -jar plantuml.jar -version
If you have the following error message : The currently displayed page contains invalid values when displaying the Windows/Preferences/PlantUML, you should try to quit Eclipse and use the
-clean flag on the command line:
PlantUML limits image width and height to 4096. There is an environment variable that you can set to override this limit:
PLANTUML_LIMIT_SIZE. You have to define this variable before launching PlantUML, something like:
Another way is an option in the command line:
setenv PLANTUML_LIMIT_SIZE 8192
Note that if you generate very big diagrams, (for example, something like 20 000 x 10 000 pixels), you can have some memory issues. The solution is to add this parameter to the java vm : -Xmx1024m. Characters encoding is a subtle thing... By default, PlantUML use the default charset of your platform, which may or may not be UTF-8 . If you want to know which charset you are using, you can type the following command:
java -DPLANTUML_LIMIT_SIZE=8192 -jar /path/to/plantuml.jar ...
If you want to use a different charset, for example UTF-8, you can use the
java -jar plantuml.jar -help
-charset XYZ To use a specific charset (default is windows-1252)
-charset flag :
You can also find here information about unicode . Note that even if Java does not support B.O.M. (Byte Order Mark) in UTF-8 format file, a workaround has been put into PlantUML, so this should not be an issue. Some Japanese users reported that they have to set the
java -jar plantuml.jar -charset UTF-8 ...
LANG variable to
ja_JP.UTF-8 in their shell before launching PlantUML.
Since the new architecture, it should simply work, because Java knows how to draw East Asian characters. You can use the
export LANG = ja_JP.UTF-8
-teps flag in the command line, or
format="eps" in the ANT task. Work is in progress. Short answer: You do have to use
@startjcckit...) when starting a diagram. Long answer: The
@startjcckit is useful to determine the type of diagram (uml, ditaa, jcckit...), and because you can optionally put a filename after the
@startXYZ. This also allows to have several diagrams inside the same file. Earlier versions of PlantUML were not supporting ditaa or jcckit. When you use -pipe flag, since the diagram is generated to standard output, there could be only one diagram in the standard input. And there is no need to specify a filename. For all those reasons,
@startuml was not needed when using -pipe flag at that time. Later, it has been decided to normalize this, and to impose
@startXYZ everywhere, even with -pipe flag, because it was confusing for users. Unfortunately, since some existing scripts were already using the fact that
@startuml is not needed in -pipe flag, it has been decided to keep this as a deprecated option, just to allow older scripts to run. We indeed do pay attention of ascending compatibility. For newer scripts, you should not rely on this, and use
@endXYZ with the -pipe flag. PlantUML is distributed under the GPL license.
You can print the license using the command line option:
Or you can use the special diagram:
java -jar plantuml.jar -license
You can also use: Those versions miss few features (DITAA for example), but are 100% able to generate UML diagrams. You can print the license of these versions using the command line option:
Or you can use the special diagram:
java -jar plantuml.jar -license
No, they are not. Images (whatever their format : PNG, SVG...) generated by the execution of PlantUML are owned by the author of their corresponding sources code (that is, their textual description in PlantUML language). Images generated by the execution of PlantUML are not considered as covered work. You can do whatever you want with them. The generated images can then be used without any reference to the GPL/LGPL/ASL/EPL/MIT license. It is not even necessary to stipulate that they have been generated with PlantUML, although this will be appreciated by PlantUML team. There is an exception : if the textual description in PlantUML language is also covered by some license (like the GPL/LGPL/ASL/EPL/MIT), then the generated images are logically covered by this license. As long as you do not modify the Java source code and the jar file, you can integrate PlantUML.jar in your own closed source software. The only constraint is that you have to mention somewhere in your own license or in your documentation that you are using PlantUML and that PlantUML is distributed under LGPL. You can then even sell your software and earn money, without any other constraints (although donation will be appreciate in that case
:-) There are no license for the PlantUML syntax itself : this means that everybody can use it. So you can use PlantUML comments into your own code : those comments are owned by yourself, and are not considered as covered work, and are not covered by the GPL/LGPL/APL/EPL/MIT license. Only the current implementation (that is, PlantUML program) is licensed under GPL, LGPL, ASL, EPL or MIT. On the other hand note that the documentation (examples, notices, ...) published in the PlantUML website is copyrighted. But you can still write your own documentation. PlantUML is using Graphviz to generate some diagrams. So PlantUML is launching dot program and retrieve the information generated by dot as a SVG flow. This message means that PlantUML is getting an empty flow from dot execution, and therefore cannot generate UML diagrams. There may be several reasons why this happens:
If you have the error message
- There is an issue with your Graphviz installation. Try a very simple diagram, with only one class for example.
- Your version of Graphviz is too old and is crashing with information provided by PlantUML. Check your version with
- Your diagram is too complex.
- There is a bug in PlantUML and/or in dot.
java.lang.NoClassDefFoundError: Could not initialize class net.sourceforge.plantuml.ugraphic.UFont, it probably means that there are no fonts installed on your server. You can solve it by adding
fontconfig on your system:
sudo yum install fontconfig
sudo apt-get install fontconfig
If you are running PlantUML on a linux server without graphical capability, you may have some error message:
Basically, this is because PlantUML needs to have access to some graphical resources (more information here). You can turn PlantUML to headless mode, using the flag
- Can't connect to X11 window
- X11 connection rejected because of wrong authentication.
-Djava.awt.headless=true. For example:
/usr/bin/java -Djava.awt.headless=true -jar /data/PlantUml/plantuml.jar ...
Under Mac OS X, if you have some error message like:
You need to follow the instructions on http://stackoverflow.com/questions/25914757/osx-yosemite-jvm-shared-library-does-not-contain-the-jni-createjavavm-symbol:
Error java.lang.UnsatisfiedLinkError / liblwawt.dylib /libosxapp.dylib
This seems to work only under Java 6, so you may define the following alias to be used in your scripts.
- Download and install the package: JavaForOSX.
- Found the file
AptanaStidio3.ini, the file by default located under the directory here:
/Applications/Aptana Studio 3/AptanaStudio3.app/Contents/MacOS
-vm argument to specify the java which will be used to lunch Aptana Studio:
alias java6="export JAVA_HOME=$(/usr/libexec/java_home -v 1.6.0)"
Depending on your configuration, you can try the flag
/usr/bin/java -Djava.awt.headless=true -jar /path/to/plantuml.jar ...
I found an issue, but I cannot provide my diagram showing the issue because my diagram contains confidential data There is a
-cypher option the command line that generates a
.preproc file instead of regular image file. The
.preproc generated file looks like the input diagram expect that all words (except PlantUML language keywords) have been replaced by a random set of letters. You can double check this by running several time the
-cypher option (you will get a different text each time). You may also look at the Cypher.java class used to execute this transformation to be sure that there are no backdoor there to retrieve back your original diagram. If there is an issue in your original diagram, the same issue is likely to also occur with the cyphered one. Since the cyphered text is really meaningless, you can safely share it with us : there will be no way for us to guess what you are really working on. But we will be able to reproduce the issue and fix it so that you can have your original (and confidential) diagram working. You can use the forum facility. Someone will try to answer your question there.