我正在尝试在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>我让它真正生成任何东西的唯一方法是给它一个docbook-xsl版本,它有一个jar而不是zip:
<groupId>net.sf.docbook</groupId>
<artifactId>docbook-xsl-ns</artifactId>
<version>1.74.0</version>如何将XSL模板的zip版本与此插件一起使用?
发布于 2013-10-10 18:34:26
正如您自己所指出的,将类型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>除此之外,您需要做的就是使用合适的classpath:/ URI在maven-jdocbook- <stylesheetResource>中配置插件:
<format>
<formatName>html</formatName>
<stylesheetResource>classpath:/docbook/html/chunk.xsl</stylesheetResource>
</format>发布于 2013-07-15 08:57:14
这是我自己对这个问题的解决方案:
运行时,带有jar打包的docbook-xsl库(1.74.0)会自动包含在maven-jdocbook-plugin的类路径中。
压缩包版本(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>我欢迎任何关于这个过程的捷径的建议。
https://stackoverflow.com/questions/17562687
复制相似问题