2013-07-10 5 views
0

Я пытаюсь запустить DocBook с использованием Maven-jdocbook-плагин с Maven 3.координаты Maven-jdocbook-плагин и зависимостей

С минимальной конфигурации:

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

Единственный способ, которым я получить его на самом деле произвести что-либо, чтобы дать это версия Docbook-XSL, который имеет банку не почтовый индекс:

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

Как получить версию почтового индекса шаблонов XSL для работы с этим плагином?

ответ

0

Это мое собственное решение вопроса:

DocBook-XSL библиотека баночки упаковки (1.74.0) автоматически включается в путь к классам Maven-jdocbook-плагин, когда он работает.

Версия с почтовой упаковкой (1.76.1) отсутствует, и ее необходимо распаковать вручную. Я использовал Maven-зависимость-плагин для этого:

<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-плагин на стили листов в этом пакете:

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

Я приветствую любые предложения по коротким сокращает этот процесс.

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> 

Все, что вам нужно сделать на вершине, что настроить <stylesheetResource> в рамках Maven-jdocbook-плагин, используя подходящий classpath:/ URI:

<format> 
    <formatName>html</formatName> 
    <stylesheetResource>classpath:/docbook/html/chunk.xsl</stylesheetResource> 
</format> 
Смежные вопросы