docbkx-maven-plugin 非常慢

docbkx-maven-plugin very slow

我将现有的 docbook 项目从 ANT(使用 dopus 框架)转移到 docbkx-maven-plugin。经过一些麻烦后,我得到了正确的输出,但性能很慢。处理花费了 ANT 24 秒。使用 Maven 插件需要 6 分钟以上。

处理似乎停止于:

[INFO] Processing input file: manual.xml
[DEBUG] Xerces XInclude mode entered
[DEBUG] User Customization provided: ...doc\src\main\custom-cfg\fo.xsl
[DEBUG] User Customization provided: ...doc\src\main\custom-cfg\fo.xsl
[DEBUG] User Customization provided: ...doc\src\main\custom-cfg\fo.xsl
[DEBUG] Configure the transformer.
[INFO] Applying customization parameters after docbkx parameters

之后每个目标大约 2-3 分钟没有输出(我有 2 个目标,JavaHelp 和 PDF)。如果我停用 xincludeSupported,它运行得非常快,但显然输出是无用的。

任何有助于加快构建过程的帮助都将不胜感激。

这是 pom 文件中的配置部分:

    <configuration>
      <sourceDirectory>src/main/docbook</sourceDirectory>
      <foCustomization>src/main/custom-cfg/fo.xsl</foCustomization> 
      <includes>manual.xml</includes>
      <xincludeSupported>true</xincludeSupported>
      <chapterAutolabel>true</chapterAutolabel>
      <sectionAutolabel>true</sectionAutolabel> 
      <sectionAutolabelMaxDepth>5</sectionAutolabelMaxDepth>
      <sectionLabelIncludesComponentLabel>true</sectionLabelIncludesComponentLabel>

      <preProcess>
        <copy todir="${project.build.directory}/docbkx/javahelp/resource">
          <fileset dir="src/main/docbook/resource/"/>
        </copy>
      </preProcess>
    </configuration>

经过一番研究,我找到了原因。在 xml 文件中定义了文档类型:

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
          "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
  [
    <!ENTITY % entities SYSTEM "../custom-cfg/local-entities.xml">
    %entities;
  ]
>

构建尝试为每个文件下载 dtd,网络流量导致构建缓慢。通过添加

            <dependency>
                <groupId>docbook</groupId>
                <artifactId>docbook-xml</artifactId>
                <version>4.5</version>
                <scope>runtime</scope>
            </dependency>

对于我的 docbkx-maven-plugin 依赖项,我可以解决问题。 (对于不同的 docbook 版本,这种依赖性是不同的,为此还需要一个存储库条目,如以下所述:http://docbkx-tools.sourceforge.net/docbkx-samples/manual.html#d5e28