0

我设置了 docbkx-maven-plugin 来为源项目生成 PDF 文档。在父 pom 中,我指定了要使用的版本以及对要使用的 docbook 版本的引用:

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

至少目录 target/Usermanual 是伟大的,但它仍然是空的。为什么还是没有输出?我有机会从 docbkx 获得有意义的日志文件吗?mvn ... -X 并没有说明太多。

4

1 回答 1

4

您的最新示例包含两个包含配置选项,它们不是有效的 Maven 配置。

我的建议是停止尝试覆盖所有这些默认值并接受 docbook 源 xml 的默认位置,至少在最初您对插件感到满意并且可以根据更改诊断出哪些问题时。

无论如何,您<includes>应该只是您尝试生成的文档的根 xml 文件,因为它存在于<sourceDirectory>. 您不需要包含所有xml 文件,而是需要遵循 xincludes 方法,因为您要声明它的用法。有许多项目使用这种机制,您可以查看和复制其用法。

我们的是:https ://github.com/jetty-project/jetty-documentation

由于我们使用 maven 过滤插件来避免与实体等混淆,因此我们的用法有点复杂。回到您的包含用法,如果您的顶级 docbook 文件是 index.xml,那么您的包含将只是:

<includes>index.xml</includes>

不需要表达式或 glob,您可以在需要的地方引入带有<xi:include>标签的其他 xml 文档。

于 2012-04-18T14:22:09.473 回答