Graphviz дает много ошибок шрифтов - PullRequest
2 голосов
/ 21 декабря 2011

Я использую maven и maven-javadoc-плагин с umlgraph-doclet для создания javadoc для моего проекта.Часть из моего pom:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-site-plugin</artifactId>
      <inherited>false</inherited>
      <configuration>
        <reportPlugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.8</version>
            <configuration>
              <show>public</show>
              <quiet>true</quiet>

              <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
              <docletArtifact>
                <groupId>org.umlgraph</groupId>
                <artifactId>doclet</artifactId>
                <version>5.1</version>
              </docletArtifact>

              <useStandardDocletOptions>true</useStandardDocletOptions>
              <additionalparam>
                -inferrel -inferdep -quiet -hide java.* -hide org.eclipse.* -collpackages java.util.* -postfixpackage
                -nodefontsize 9 -nodefontpackagesize 7 -attributes -types -visibility -operations -constructors
                -enumerations -enumconstants -views
              </additionalparam>
            </configuration>
            <reportSets>
              <reportSet>
                <reports>
                  <report>aggregate</report>
                </reports>
              </reportSet>
            </reportSets>
          </plugin>
        </reportPlugins>
      </configuration>
    </plugin>
  </plugins>
</build>

Это ошибки, которые я получаю при запуске mvn site или, альтернативно, dot -Tpng class.dot -o class.cli.png, используя файлы .dot, сгенерированные доклетом umlgraph:

[0] Times-Roman => "Times,  REGULAR"
[1] Times-Italic => "Times,  REGULAR ITALIC"
[2] Times-Bold => "Times,  BOLD"
[3] Times-BoldItalic => "Times,  BOLD ITALIC"
[4] AvantGarde-Book => "URW Gothic L,  BOOK"
[5] AvantGarde-BookOblique => "URW Gothic L,  BOOK"
[6] AvantGarde-Demi => "URW Gothic L,  DEMI"
[7] AvantGarde-DemiOblique => "URW Gothic L,  DEMI"
[8] Bookman-Light => "URW Bookman L,  LIGHT"
[9] Bookman-LightItalic => "URW Bookman L,  LIGHT ITALIC"
[10] Bookman-Demi => "URW Bookman L, "
[11] Bookman-DemiItalic => "URW Bookman L,  ITALIC"
[12] Courier => "Courier,  REGULAR"
[13] Courier-Oblique => "Courier,  REGULAR OBLIQUE"
[14] Courier-Bold => "Courier,  BOLD"
[15] Courier-BoldOblique => "Courier,  BOLD OBLIQUE"
[16] Helvetica => "Helvetica,  REGULAR"
[17] Helvetica-Oblique => "Helvetica,  REGULAR OBLIQUE"
[18] Helvetica-Bold => "Helvetica,  BOLD"
[19] Helvetica-BoldOblique => "Helvetica,  BOLD OBLIQUE"
[20] Helvetica-Narrow => "Helvetica,  REGULAR"
[21] Helvetica-Narrow-Oblique => "Helvetica,  REGULAR OBLIQUE"
[22] Helvetica-Narrow-Bold => "Helvetica,  BOLD"
[23] Helvetica-Narrow-BoldOblique => "Helvetica,  BOLD OBLIQUE"
[24] NewCenturySchlbk-Roman => "Century Schoolbook L,  ROMAN"
[25] NewCenturySchlbk-Italic => "Century Schoolbook L,  REGULAR ITALIC"
[26] NewCenturySchlbk-Bold => "Century Schoolbook L,  BOLD"
[27] NewCenturySchlbk-BoldItalic => "Century Schoolbook L,  BOLD ITALIC"
[28] Palatino-Roman => "URW Palladio L,  ROMAN"
[29] Palatino-Italic => "URW Palladio L,  REGULAR ITALIC"
[30] Palatino-Bold => "URW Palladio L,  BOLD"
[31] Palatino-BoldItalic => "URW Palladio L,  BOLD ITALIC"
[32] Symbol => "Impact, "
[33] ZapfChancery-MediumItalic => "URW Chancery L,  ITALIC"
[34] ZapfDingbats => "Dingbats,  REGULAR"

Не все шрифты из этого списка используются в файле .dot, там используется только Helvetica.Я использую Linux.Я могу предоставить вам файл .dot, который я использовал для тестирования.Еще одно моё наблюдение: при работе в терминале не каждый запуск показывает эти ошибки.В среднем каждый третий пробег проходит без них.Вывод при работе с -v:

dot - graphviz version 2.28.0 (20111204.1018)
libdir = "/usr/lib/graphviz"
Activated plugin library: libgvplugin_pango.so.6
Using textlayout: textlayout:cairo
Using render: cairo:cairo
Using device: png:cairo:cairo
Activated plugin library: libgvplugin_dot_layout.so.6
Using layout: dot:dot_layout
The plugin configuration file:
        /usr/lib/graphviz/config6
            was successfully loaded.
    render      :  cairo dot fig gd map ps svg tk vml vrml xdot
    layout      :  circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
    textlayout  :  textlayout
    device      :  bmp canon cmap cmapx cmapx_np dot eps fig gd gd2 gif gv ico imap imap_np ismap jpe jpeg jpg pdf plain plain-ext png ps ps2 svg svgz tif tiff tk vml vmlz vrml wbmp x11 xdot xlib
    loadimage   :  (lib) eps gd gd2 gif jpe jpeg jpg png ps svg
fontname: "Helvetica" resolved to: (ps:pango  Helvetica,  REGULAR) (PangoCairoFcFont) "Arial, Regular" /usr/share/fonts/TTF/Arialtbg.ttf
network simplex:  3 nodes 2 edges maxiter=2147483647 balance=1
network simplex: 3 nodes 2 edges 0 iter 0.00 sec
network simplex:  1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
mincross: pass 0 iter 0 trying 0 cur_cross 0 best_cross 0
mincross: pass 0 iter 0 trying 0 cur_cross 0 best_cross 0
mincross G: 0 crossings, 0.00 secs.
network simplex:  6 nodes 6 edges maxiter=2147483647 balance=2
network simplex: 6 nodes 6 edges 1 iter 0.00 sec
routesplines: 2 edges, 6 boxes 0.00 sec
Using render: cairo:cairo
Using device: png:cairo:cairo
dot: allocating a 1162K cairo image surface (781 x 381 pixels)

Кто-нибудь знает, как их исправить или подавить?Раздражает получение более 2 тыс. Строк этих ошибок на каждом поколении сайтов.

Ответы [ 2 ]

1 голос
/ 30 декабря 2011

К сожалению, поскольку параметры командной строки точки жестко заданы в UmlGraphDoc.java , прямого способа изменить параметры командной строки точки нет [Может создать сценарий оболочки с именем dot, предшествующий реальной точке в пути с необходимыми аргументами ]

Фрагмент кода UmlGraphDoc.java

p = Runtime.getRuntime().exec(
  new String[] { "dot", "-Tcmapx", "-o",
  mapFile.getAbsolutePath(), "-Tpng", "-o",
  pngFile.getAbsolutePath(),
  dotFile.getAbsolutePath() });

<quiet>true</quiet> опция для maven-javadoc-plugin не подавляет предупреждения и ошибки

AFAIK Единственный оставленный путь - либо

Запустить Maven в тихом режиме

mvn -q

Или grep вывод команды maven для подавления строки, содержащей =>

mvn site | grep -v ' => "'
1 голос
/ 27 декабря 2011

Сообщения, которые вы видите, являются частью леса отладки.Это не ошибки, а просто информация о сопоставлении шрифтов.Это печатается только тогда, когда Graphviz запускается с -v со значением 2 или больше.Соответствующий внутренний код:

if (Verbose > 1)
    printFontMap (gv_fmap, ps_fontnames_sz);

Это должно быть полностью детерминированным.Мне нужно больше информации о том, как Graphviz используется maven, чтобы предложить более подробную информацию.

...