DITA-OT Maven プラグイン

以前,力弱く antrun で逃げたネタ.構成管理上,DITA-OTもバージョニングしておかないと気持ち悪いのと,構成記述の量が増えると思わぬミスを呼びがちなので,一念発起した.
DITA-OT自身を弄り出すとドツボにハマりそうなので,dost.jar のランチャとして実装してある.Mavenの枠組みに奇麗にはまらないのは若干の気持ち悪さはあるけれども,止む方ないだろう.


pom.xml の例を挙げる.親pomで行っている設定もあるのだけれども,antrun でやっているよりはかなり簡素にできた.

project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>manual_ib</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>FlashWriter manual</name>

  <parent>
    <groupId>com.example</groupId>
    <artifactId>docs</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <build>
    <plugins>
      <plugin>
	<groupId>jp.pizzafactory.documents</groupId>
	<artifactId>maven-dita-ot-plugin</artifactId>
	<version>1.4.3.0</version>
	<configuration>
	    <options>
		<i>${basedir}/flashwriter-install.ditamap</i>
		<transtype>pdf</transtype>
	    </options>
	</configuration>
	<executions>
	  <execution>
	    <goals>
	      <goal>extract</goal>
	      <goal>dost</goal>
	    </goals>
	  </execution>
	</executions>
      </plugin>
    </plugins>
  </build>
</project>

ここでgoalsがミソ.

	    <goals>
	      <goal>extract</goal>
	      <goal>dost</goal>
	    </goals>

extract ゴールで,プラグインが抱えている DITA-OT + FOP + IPAフォントを展開しパスの問題を解決している.
fop.xconf の font-base 問題はこれで解決.

dost は,本当に dost を起動しているだけ.とはいっても,環境変数を設定したりとか割と煩雑なことをこなしてはいる.
DITAそのもののhackをしている場合は,extractゴールを外し,

  <options>
    <ditadir>path_to_somewhere</ditadir>

とすればよいはず.hackが終了したら(もしくは本家が新しいリリースを出したら),maven-dita-ot-plugin 自身のバージョンを上げる.これで

文書作成仕事しながらDITA-OTのバグフィックスしていたので,同じ体裁の文書が二度と作れない

というような構成管理上最悪の事態は避けられる…はず.


Continuumを用いた継続ビルドが可能であることも確認済み.やっと文書もビルドサイクルに載せられるようになった.