# How to build the documentation

This describes how to build the documentation found in the
org.eclipse.tracecompass.*.doc.* plugins.

To build doc plugins use maven command: mvn clean install

To build doc plugins from within Eclipse you need to install m2e.

To edit the mediawiki text, your Eclipse environment first needs to have the
"Mylyn Wikitext" plugin installed. It can be found in the default Eclipse repository,
under "Collaboration".

You might get a warning from build.properties because of a missing file. This
file gets generated with the rest of the doc, so once you have run these steps
(and refreshed the project if needed), the warning should disappear.
