我设置了docbkx-maven-plugin来为源项目生成PDF文档。在父pom中,我指定了要使用的版本以及对要使用的文档手册版本的引用:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-maven-plugin</artifactId>
<version>2.0.14</version>
<dependencies>
<dependency>
<groupId>net.sf.docbook</groupId>
<artifactId>docbook-xml</artifactId>
<version>5.0-all</version>
<type>zip</type>
<classifier>resources</classifier>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</pluginManagement>
在实际项目中,我使用配置:
<build>
<plugins>
<plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-maven-plugin</artifactId>
<executions>
<execution>
<id>usersmanual</id>
<phase>generate-resources</phase>
<goals>
<goal>generate-pdf</goal>
</goals>
<configuration>
<includes>${basedir}/UserManual/*.xml</includes>
<includes>${basedir}/UserManual/src/*.xml</includes>
<targetDirectory>${project.build.directory}/UserManual</targetDirectory>
<chunkedOutput>true</chunkedOutput>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
无论我指定什么目标或提供什么,插件都会执行 no(!) 操作。没有创建目标目录,我在命令行上看不到任何有意义的输出。结果如下所示:
[INFO] --- docbkx-maven-plugin:2.0.14:generate-pdf (usersmanual) @ documentation ---
[INFO]
我使用 Maven 3.0.3。
我在这里错过了什么?是否有任何尚未提供的配置将启动插件以执行一些工作?
更新:这就是我现在拥有的:
<plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-maven-plugin</artifactId>
<version>2.0.14</version>
<dependencies>
<dependency>
<groupId>net.sf.docbook</groupId>
<artifactId>docbook-xml</artifactId>
<version>5.0-all</version>
<type>zip</type>
<classifier>resources</classifier>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>generate-pdf</goal>
</goals>
<phase>prepare-package</phase>
<configuration>
<sourceDirectory>${project.basedir}/UserManual</sourceDirectory>
<xincludeSupported>true</xincludeSupported>
<includes>${project.basedir}/UserManual/UserManual.xml</includes>
<includes>${project.basedir}/UserManual/**/*.xml</includes>
<targetDirectory>${project.build.directory}/UserManual</targetDirectory>
</configuration>
</execution>
</executions>
</plugin>
至少目录目标/用户手册很棒,但它仍然是空的。为什么仍然没有输出?我有机会从docbkx获得有意义的日志文件吗?mvn ... -X 没有说明太多。
您的最新示例包含两个包含配置选项,这些选项不是有效的 maven 配置。
我的建议是停止尝试覆盖所有这些默认值并接受文档手册源 xml 的默认位置,至少在最初您熟悉该插件并可以诊断哪些问题来自哪些更改时。
无论如何,您的<includes>
应该只是您尝试生成的文档的根 xml 文件,因为它存在于<sourceDirectory>
中。 您不需要包含所有 xml 文件,而是需要遵循 xinclude 方法,因为您要声明其用法。 有许多使用此机制的项目可以查看和复制其使用情况。
我们的是:https://github.com/jetty-project/jetty-documentation
我们有更复杂的用法,因为我们使用 maven 过滤插件来避免弄乱实体等。 回到你的包含用法,如果你的顶级文档簿文件是索引.xml那么你的包含将只是:
<includes>index.xml</includes>
无需表达式或 glob,您可以在需要的地方引入带有 <xi:include>
标记的其他 xml 文档。