docbkx-maven-plugin非常慢

时间:2017-04-19 08:26:27

标签: maven docbook javahelp

我将现有的docbook项目从ANT(使用dopus框架)转移到docbkx-maven-plugin。经过一些麻烦我输出正确,但性能非常慢。处理时间为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>

1 个答案:

答案 0 :(得分:0)

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

<!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