Build Eclipse documentation from wikitext with Maven Tycho

Posted on 2011-08-16 by Hendrik Eeckhaut
Tagged as: eclipsemavenplaneteclipsetycho

For Sigasi 2.0 we decided to write all documentation in the textile wiki markup language. With the Mylyn Wikitext  plugin, textile files can be converted in lots of different output formats such as Eclipse help, html, PDF,…

Based on the blog posts of Peter Friese  I could easily automate the documentation build with Ant. But when I tried to run the documentation build ant task from our Maven Tycho build, the necessary XSLT transforms refused to run. Xalan  could not be loaded…

After a lot of googling, moaning and trying I finally found out that the trick is to add Xalan as a dependency to the antrun plugin.

This is the Maven configuration I ended up with that works for me:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.6</version>
      <executions>
        <execution>
          <id>generate-documentation</id>
          <phase>generate-sources</phase>
          <configuration>
            <echo>Generating documentation</echo>
            <tasks>
              <property name="compile_classpath" refid="maven.compile.classpath" />
              <ant inheritRefs="true" antfile="build-doc.xml">
                <target name="build-doc" />
              </ant>
            </tasks>
          </configuration>
          <goals>
            <goal>run</goal>
          </goals>
        </execution>
      </executions>
      <dependencies>
        <dependency>
          <groupId>org.apache.ant</groupId>
          <artifactId>ant</artifactId>
          <version>1.8.1</version>
        </dependency>
        <dependency>
          <groupId>org.apache.ant</groupId>
          <artifactId>ant-launcher</artifactId>
          <version>1.8.1</version>
        </dependency>
        <dependency>
          <groupId>org.apache.ant</groupId>
          <artifactId>ant-nodeps</artifactId>
          <version>1.8.1</version>
        </dependency>
        <dependency>
          <groupId>xalan</groupId>
          <artifactId>xalan</artifactId>
          <version>2.7.1</version>
        </dependency>
      </dependencies>
    </plugin>
  </plugins>
</build>

See also

comments powered by Disqus