The indexing at build time was usually achieved by two steps:
1. Declare an extension saying where your index will be created:
<extension point="org.eclipse.help.toc"> <index path="index"> </index> </extension>
2. Ensure that the index is actually built via customBuildCallbacks.xml
<project name="Build specific targets and properties" default="noDefault"> <target name="post.build.jars"> <help.buildHelpIndex manifest="plugin.xml" destination="."/> </target> </project>The problem with the customBuildCallbacks is that it allows for to much creativity, which is nearly as desired in build systems as in accountancy :). Thus it should not be used. So, the question is, how to make it work with maven? I wish the answer was simple, but I have no other choice then present it in the most brutal form of xml:
<build> <plugins> <plugin> <groupId>org.eclipse.tycho.extras <artifactId>tycho-eclipserun-plugin</artifactId> <!-- this is actually present in any 0.14+ version --> <version>0.16.0-SNAPSHOT</version> <configuration> <!-- this is to fix some lucene 3.x compatibility issue --> <argLine>-Dhelp.lucene.tokenizer=standard</argLine> <!-- actuall indexer call --> <appArgLine>-application org.eclipse.ant.core.antRunner -buildfile customBuildCallbacks.xml build.index</appArgLine> <dependencies> <!-- list of bundles that we need --> <dependency> <artifactId>org.eclipse.ant.core</artifactId> <type>eclipse-plugin</type> </dependency> <dependency> <artifactId>org.apache.ant</artifactId> <type>eclipse-plugin</type> </dependency> <dependency> <artifactId>org.eclipse.help.base</artifactId> <type>eclipse-plugin</type> </dependency> </dependencies> </configuration> <executions> <execution> <goals> <goal>eclipse-run</goal> </goals> <phase>compile</phase> </execution> </executions> </plugin> </plugins> </build>It should be read as: assemble an eclipse with org.apache.core,org.eclipse.ant.core, org.eclipse.help.base and all required dependencies, and then invoke the indexer. I hope this will be useful to someone during migration to tycho :-). Best regards Sources: Eclipse Help and Tycho wiki.
There is a little typo - the antRunner target should be the same as the target name in the customBuildCallbacks.xml i.e. post.build.jars rather than build.index
ReplyDeleteThanks for the comment. This is intentional - although may be questioned. The point is to call as little from customBuildCallbacks as possible. In the original I had direct call to the indexer without the xml at all, but that would be to much hardcore...
Delete