Anyone, everyone please correct me if you notice any errors in what I am about to babble about :).

To build, deploy and publish site doco I usually run the following for a single level project:

maven site
maven site:deploy
maven site:publish

This will build the site for the single project (not multiproject), then it will deploy the generated site to the subproject area in the staging area. Finally it will move code from the staging area to the actual site. Where these places are on minotaur are determined from values in the pom and the project.properties. In general though we use the following area on minotaur for the staging area:

/home/akarasulu/public_html/rsynced-sites/directory

For the single level project let's look at MINA as an example ...
---------------------------------------------------------------------------------------------------------

${mina.path}/project.properties
===============================
...
maven.site.stage.directory=/home/akarasulu/public_html/rsynced-sites/directory/subprojects/network

${mina.path}/project.xml
=========================
...
 <siteAddress>minotaur.apache.org</siteAddress>
 <siteDirectory>
   /www/directory.apache.org/subprojects/network
 </siteDirectory>
...

${home.dir}/build.properties
============================
...
maven.username=akarasulu
maven.remote.group=directory
...


The stage property tells the site plugin where to stage the site to when maven site:deploy is executed. The info in the pom for the site address and the site directory tell the plugin where to publish the site to.

-------------------------------------------------------------------------------------------------------------


For multiproject configurations things get a bit complex. Usually the multiproject is setup to copy the generated information from subprojects into the top target directory. Meaning some assembly of information is going on (hopefully). So the sequence changes to the following:

maven site
maven multiproject:site
maven site:deploy
maven site:publish

The only difference was the addition of generating site info for subprojects. Hopefully this stuff is picked up and pushed out with the rest of the top level site info when it is deployed. Publish will be top down and recursive so usually a publish at the top level pushs all the pages below it in the site with rsync.

Now for the setting in the project pom, properties etc. The same thing is done except this info is usually at the top level rather than in individual subprojects in the multiproject configuration.

Hope this helps people who want to build deploy and publish the site.

Cheers,
Alex

Reply via email to