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)
我将现有的 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)