0

ソース プロジェクトの PDF ドキュメントを生成するように docbkx-maven-plugin をセットアップしました。親 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

Your latest example contains two includes configuration options which is not valid maven configuration.

My recommendation is to stop trying to override all these defaults and accept the default location for the docbook source xml, at least initially while you get comfortable with the plugin and can diagnose what issues are from what changes.

Anyway, your <includes> should be just the root xml file of the documentation you're trying to generate as it exists in the <sourceDirectory>. You do not need to include all of the xml files, you instead need to follow the xincludes approach since you're declaring its usage. There are a number of projects using this mechanism that you can review and copy the usage of.

Ours is: https://github.com/jetty-project/jetty-documentation

We have a bit more complex usage since we use the maven filtering plugin to avoid having to mess with entities and the like. Getting back to your includes usage, if your top level docbook file is index.xml then your includes would simply be:

<includes>index.xml</includes>

No expressions or globs needed, you bring in the other xml documents with the <xi:include> tags where needed.

于 2012-04-18T14:22:09.473 に答える