0

maven 3 で maven-jdocbook-plugin を使用して docbook を実行しようとしています。

最小構成の場合:

<plugin>
  <groupId>org.jboss.maven.plugins</groupId>
  <artifactId>maven-jdocbook-plugin</artifactId>
  <executions>
    <execution>
      <id>default-cli</id>
      <goals>
        <goal>generate</goal>
      </goals>
      <phase>compile</phase>
    </execution>
  </executions>
  <configuration>
    <sourceDirectory>src/main/doc/xml</sourceDirectory>
    <sourceDocumentName>DocBook.xml</sourceDocumentName>
    <formats>
      <format>
        <formatName>html</formatName>
        <finalName>index.html</finalName>
      </format>
   </configuration>
  </plugin>

次のエラーが表示されます。

 [ERROR] Failed to execute goal org.jboss.maven.plugins:maven-jdocbook-plugin:2.3.8:generate (default-cli) on project <project>: Execution default-cli of goal org.jboss.maven.plugins:maven-jdocbook-plugin:2.3.8:generate failed: could not locate resource [/html/chunk.xsl] -> [Help 1]
 org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.jboss.maven.plugins:maven-jdocbook-plugin:2.3.8:generate (default-cli) on project <project>: Execution default-cli of goal org.jboss.maven.plugins:maven-jdocbook-plugin:2.3.8:generate failed: could not locate resource [/html/chunk.xsl]

ローカルの Maven リポジトリを見ると、次のように表示されます。

$ ls ~/.m2/repository/net/sf/docbook/docbook-xsl
$ 1.76.1
$ ls ~/.m2/repository/net/sf/docbook/docbook-xsl/1.76.1
$ _maven.repositories       docbook-xsl-1.76.1.pom      docbook-xsl-1.76.1.pom.sha1

したがって、POM はありますが、ライブラリはありません。

docbook-xsl に明示的な依存関係を指定すると、コンテンツがダウンロードされます (ただし、同じエラーが発生します)。

<dependency>
  <groupId>net.sf.docbook</groupId>
  <artifactId>docbook-xsl</artifactId>
  <version>1.76.1</version>
  <classifier>ns-resources</classifier>
  <type>zip</type>
</dependency>

実際に何かを生成させる唯一の方法は、zip ではなく jar を持つバージョンの docbook-xsl を与えることです。

<groupId>net.sf.docbook</groupId>
<artifactId>docbook-xsl-ns</artifactId>
<version>1.74.0</version>

XSL テンプレートの zip バージョンをこのプラグインで動作させるにはどうすればよいですか?

4

2 に答える 2

1

ご指摘のとおり、タイプ zip の依存関係を入れます。

<dependencies>
  <dependency>
    <groupId>net.sf.docbook</groupId>
    <artifactId>docbook-xsl</artifactId>
    <version>1.76.1</version>
    <classifier>ns-resources</classifier>
    <type>zip</type>
  </dependency>
</dependencies>

その上で行う必要があるのは、適切なURI<stylesheetResource>を使用して maven-jdocbook-plugin 内で構成することだけです。classpath:/

<format>
  <formatName>html</formatName>
  <stylesheetResource>classpath:/docbook/html/chunk.xsl</stylesheetResource>
</format>
于 2013-10-10T10:34:25.973 に答える
0

これは質問に対する私自身の解決策です:

jar パッケージ化された docbook-xsl ライブラリ (1.74.0) は、実行時に maven-jdocbook-plugin のクラスパスに自動的に含まれます。

zip パッケージのバージョン (1.76.1) はそうではなく、手動で解凍する必要があります。これには maven-dependency-plugin を使用しました。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <executions>
    <execution>
      <id>unpack-docbook-xsl</id>
  <phase>generate-resources</phase>
  <goals>
    <goal>unpack</goal>
      </goals>
      <configuration>
        <artifactItems>
          <artifactItem>
            <groupId>net.sf.docbook</groupId>
            <artifactId>docbook-xsl</artifactId>
            <version>1.76.1</version>
            <type>zip</type>
            <classifier>ns-resources</classifier>
            <overWrite>true</overWrite>
            <outputDirectory>${project.build.directory}</outputDirectory>
          </artifactItem>
        </artifactItems>
      </configuration>
    </execution>
   </executions>
</plugin>

次に、このパッケージのスタイル シートで maven-jdocbook-plugin を指定しました。

<formats>
  <format>
    <formatName>html</formatName>
    <stylesheetResource>file:${project.build.directory}/docbook/html/chunk.xsl</stylesheetResource>
    <finalName>index.html</finalName>
  </format>
  <format>
    <formatName>pdf</formatName>
    <stylesheetResource>file:${project.build.directory}/docbook/fo/docbook.xsl</stylesheetResource>
    <finalName>${project.artifactId}-${project.version}.pdf</finalName>
  </format>
  <format>
    <formatName>html_single</formatName>
    <stylesheetResource>file:${project.build.directory}/docbook/html/docbook.xsl</stylesheetResource>
    <finalName>index.html</finalName>
  </format>
</formats>

このプロセスを短縮するための提案を歓迎します。

于 2013-07-15T00:57:14.263 に答える