如何将docbook部署到Maven站点?

时间:2013-03-22 08:10:21

标签: maven docbook

我正在使用the docbkx-tools来使用Maven创建DocBook。目前我可以制作各种格式的书。我还实现了通过WebDav使用Wagon将我的Maven站点部署到Web服务器。

我想通过使用像mvn clean install site:deploy这样的命令将它们一起发布,生成的DocBook和我的Maven站点。你能帮忙解决一些问题吗?

2 个答案:

答案 0 :(得分:2)

您只需将生成的pdf / rtf / html复制到正确的位置,并将其与maven-site一起部署,或者您可以直接生成到该站点的目标位置,如下所示:

 <plugin>
    <groupId>com.agilejava.docbkx</groupId>
    <artifactId>docbkx-maven-plugin</artifactId>
    <version>2.0.14</version>
    <dependencies>
      <dependency>
        <groupId>docbook</groupId>
        <artifactId>docbook-xml</artifactId>
        <version>4.4</version>
      </dependency>
    </dependencies>
    <executions>
      <execution>
        <goals>
          <goal>generate-pdf</goal>
        </goals>
        <phase>pre-site</phase>
        <configuration>
          <sourceDirectory>${basedir}/src/docbkx</sourceDirectory>
          <xincludeSupported>true</xincludeSupported>
          <includes>maui.xml</includes>
          <foCustomization>src/docbkx/fopdf.xsl</foCustomization>
          <targetDirectory>${project.build.directory}/site/</targetDirectory>
        </configuration>
      </execution>
    </executions>
  </plugin>

您不应该使用site:deploy,您应该使用 mvn site mvn site-deploy 来运行网站life-cycle

答案 1 :(得分:2)

您可以使用以下属性控制docbook输出目录:<targetDirectory>(默认为${basedir}/target/docbkx/<something dependending on the output format>

另一方面,maven-site-plugin将获取<inputDirectory>下创建到网站的所有文件(全局,它会为目录中的所有内容创建一个zip)。默认值为project.reporting.outputDirectory

因此,如果您将docbook插件<targetDirectory>更改为maven-site-plugin <inputDirectory>中的内容:docbook输出将包含在生成的网站zip中。

此外,为了确保在部署网站之前运行您的docbook插件,您需要在site lifecycle site-deploy之前的某个阶段绑定docbook插件。所以其中一个阶段就可以了:pre-site site post-site 以下是有关binding a plugin to a phase

的详细信息