Coverage Report - org.apache.maven.plugins.site.HelpMojo
 
Classes in this File Line Coverage Branch Coverage Complexity
HelpMojo
0%
0/536
0%
0/110
6,667
 
 1  
 package org.apache.maven.plugins.site;
 2  
 
 3  
 import java.util.ArrayList;
 4  
 import java.util.Iterator;
 5  
 import java.util.List;
 6  
 
 7  
 import org.apache.maven.plugin.AbstractMojo;
 8  
 import org.apache.maven.plugin.MojoExecutionException;
 9  
 
 10  
 /**
 11  
  * Display help information on maven-site-plugin.<br/> Call <pre>  mvn site:help -Ddetail=true -Dgoal=&lt;goal-name&gt;</pre> to display parameter details.
 12  
  *
 13  
  * @version generated on Fri May 20 22:33:37 CEST 2011
 14  
  * @author org.apache.maven.tools.plugin.generator.PluginHelpGenerator (version 2.7)
 15  
  * @goal help
 16  
  * @requiresProject false
 17  
  * @threadSafe
 18  
  */
 19  0
 public class HelpMojo
 20  
     extends AbstractMojo
 21  
 {
 22  
     /**
 23  
      * If <code>true</code>, display all settable properties for each goal.
 24  
      * 
 25  
      * @parameter expression="${detail}" default-value="false"
 26  
      */
 27  
     private boolean detail;
 28  
 
 29  
     /**
 30  
      * The name of the goal for which to show help. If unspecified, all goals will be displayed.
 31  
      * 
 32  
      * @parameter expression="${goal}"
 33  
      */
 34  
     private java.lang.String goal;
 35  
 
 36  
     /**
 37  
      * The maximum length of a display line, should be positive.
 38  
      * 
 39  
      * @parameter expression="${lineLength}" default-value="80"
 40  
      */
 41  
     private int lineLength;
 42  
 
 43  
     /**
 44  
      * The number of spaces per indentation level, should be positive.
 45  
      * 
 46  
      * @parameter expression="${indentSize}" default-value="2"
 47  
      */
 48  
     private int indentSize;
 49  
 
 50  
 
 51  
     /** {@inheritDoc} */
 52  
     public void execute()
 53  
         throws MojoExecutionException
 54  
     {
 55  0
         if ( lineLength <= 0 )
 56  
         {
 57  0
             getLog().warn( "The parameter 'lineLength' should be positive, using '80' as default." );
 58  0
             lineLength = 80;
 59  
         }
 60  0
         if ( indentSize <= 0 )
 61  
         {
 62  0
             getLog().warn( "The parameter 'indentSize' should be positive, using '2' as default." );
 63  0
             indentSize = 2;
 64  
         }
 65  
 
 66  0
         StringBuffer sb = new StringBuffer();
 67  
 
 68  0
         append( sb, "org.apache.maven.plugins:maven-site-plugin:2.3", 0 );
 69  0
         append( sb, "", 0 );
 70  
 
 71  0
         append( sb, "Maven Site Plugin", 0 );
 72  0
         append( sb, "The Maven Site Plugin is a plugin that generates a site for the current project.", 1 );
 73  0
         append( sb, "", 0 );
 74  
 
 75  0
         if ( goal == null || goal.length() <= 0 )
 76  
         {
 77  0
             append( sb, "This plugin has 9 goals:", 0 );
 78  0
             append( sb, "", 0 );
 79  
         }
 80  
 
 81  0
         if ( goal == null || goal.length() <= 0 || "attach-descriptor".equals( goal ) )
 82  
         {
 83  0
             append( sb, "site:attach-descriptor", 0 );
 84  0
             append( sb, "Adds the site descriptor (site.xml) to the list of files to be installed/deployed.", 1 );
 85  0
             append( sb, "", 0 );
 86  0
             if ( detail )
 87  
             {
 88  0
                 append( sb, "Available parameters:", 1 );
 89  0
                 append( sb, "", 0 );
 90  
 
 91  0
                 append( sb, "inputEncoding (Default: ${project.build.sourceEncoding})", 2 );
 92  0
                 append( sb, "Specifies the input encoding.", 3 );
 93  0
                 append( sb, "Expression: ${encoding}", 3 );
 94  0
                 append( sb, "", 0 );
 95  
 
 96  0
                 append( sb, "locales", 2 );
 97  0
                 append( sb, "A comma separated list of locales supported by Maven. The first valid token will be the default Locale for this instance of the Java Virtual Machine.", 3 );
 98  0
                 append( sb, "Expression: ${locales}", 3 );
 99  0
                 append( sb, "", 0 );
 100  
 
 101  0
                 append( sb, "outputEncoding (Default: ${project.reporting.outputEncoding})", 2 );
 102  0
                 append( sb, "Specifies the output encoding.", 3 );
 103  0
                 append( sb, "Expression: ${outputEncoding}", 3 );
 104  0
                 append( sb, "", 0 );
 105  
 
 106  0
                 append( sb, "siteDirectory (Default: ${basedir}/src/site)", 2 );
 107  0
                 append( sb, "Directory containing the site.xml file and the source for apt, fml and xdoc docs.", 3 );
 108  0
                 append( sb, "", 0 );
 109  
             }
 110  
         }
 111  
 
 112  0
         if ( goal == null || goal.length() <= 0 || "deploy".equals( goal ) )
 113  
         {
 114  0
             append( sb, "site:deploy", 0 );
 115  0
             append( sb, "Deploys the generated site using scp or file protocol to the site URL specified in the <distributionManagement> section of the POM.\nFor scp protocol, the website files are packaged into zip archive, then the archive is transfered to the remote host, next it is un-archived. This method of deployment should normally be much faster than making a file by file copy. For file protocol, the files are copied directly to the destination directory.\n", 1 );
 116  0
             append( sb, "", 0 );
 117  0
             if ( detail )
 118  
             {
 119  0
                 append( sb, "Available parameters:", 1 );
 120  0
                 append( sb, "", 0 );
 121  
 
 122  0
                 append( sb, "chmod (Default: true)", 2 );
 123  0
                 append( sb, "Whether to run the \'chmod\' command on the remote site after the deploy. Defaults to \'true\'.", 3 );
 124  0
                 append( sb, "Expression: ${maven.site.chmod}", 3 );
 125  0
                 append( sb, "", 0 );
 126  
 
 127  0
                 append( sb, "chmodMode (Default: g+w,a+rX)", 2 );
 128  0
                 append( sb, "The mode used by the \'chmod\' command. Only used if chmod = true. Defaults to \'g+w,a+rX\'.", 3 );
 129  0
                 append( sb, "Expression: ${maven.site.chmod.mode}", 3 );
 130  0
                 append( sb, "", 0 );
 131  
 
 132  0
                 append( sb, "chmodOptions (Default: -Rf)", 2 );
 133  0
                 append( sb, "The options used by the \'chmod\' command. Only used if chmod = true. Defaults to \'-Rf\'.", 3 );
 134  0
                 append( sb, "Expression: ${maven.site.chmod.options}", 3 );
 135  0
                 append( sb, "", 0 );
 136  
 
 137  0
                 append( sb, "inputDirectory", 2 );
 138  0
                 append( sb, "Directory containing the generated project sites and report distributions.", 3 );
 139  0
                 append( sb, "Required: Yes", 3 );
 140  0
                 append( sb, "Expression: ${project.reporting.outputDirectory}", 3 );
 141  0
                 append( sb, "", 0 );
 142  
 
 143  0
                 append( sb, "inputEncoding (Default: ${project.build.sourceEncoding})", 2 );
 144  0
                 append( sb, "Specifies the input encoding.", 3 );
 145  0
                 append( sb, "Expression: ${encoding}", 3 );
 146  0
                 append( sb, "", 0 );
 147  
 
 148  0
                 append( sb, "locales", 2 );
 149  0
                 append( sb, "A comma separated list of locales supported by Maven. The first valid token will be the default Locale for this instance of the Java Virtual Machine.", 3 );
 150  0
                 append( sb, "Expression: ${locales}", 3 );
 151  0
                 append( sb, "", 0 );
 152  
 
 153  0
                 append( sb, "outputEncoding (Default: ${project.reporting.outputEncoding})", 2 );
 154  0
                 append( sb, "Specifies the output encoding.", 3 );
 155  0
                 append( sb, "Expression: ${outputEncoding}", 3 );
 156  0
                 append( sb, "", 0 );
 157  
 
 158  0
                 append( sb, "siteDirectory (Default: ${basedir}/src/site)", 2 );
 159  0
                 append( sb, "Directory containing the site.xml file and the source for apt, fml and xdoc docs.", 3 );
 160  0
                 append( sb, "", 0 );
 161  
             }
 162  
         }
 163  
 
 164  0
         if ( goal == null || goal.length() <= 0 || "effective-site".equals( goal ) )
 165  
         {
 166  0
             append( sb, "site:effective-site", 0 );
 167  0
             append( sb, "Displays the effective site descriptor as an XML for this build, after inheritance and interpolation of site.xml.", 1 );
 168  0
             append( sb, "", 0 );
 169  0
             if ( detail )
 170  
             {
 171  0
                 append( sb, "Available parameters:", 1 );
 172  0
                 append( sb, "", 0 );
 173  
 
 174  0
                 append( sb, "attributes", 2 );
 175  0
                 append( sb, "The template properties for rendering the site.", 3 );
 176  0
                 append( sb, "Expression: ${attributes}", 3 );
 177  0
                 append( sb, "", 0 );
 178  
 
 179  0
                 append( sb, "generatedSiteDirectory (Default: ${project.build.directory}/generated-site)", 2 );
 180  0
                 append( sb, "Directory containing generated documentation. This is used to pick up other source docs that might have been generated at build time.", 3 );
 181  0
                 append( sb, "", 0 );
 182  
 
 183  0
                 append( sb, "generateProjectInfo (Default: true)", 2 );
 184  0
                 append( sb, "Whether to generate the summary page for project reports: project-info.html.", 3 );
 185  0
                 append( sb, "Expression: ${generateProjectInfo}", 3 );
 186  0
                 append( sb, "", 0 );
 187  
 
 188  0
                 append( sb, "inputEncoding (Default: ${project.build.sourceEncoding})", 2 );
 189  0
                 append( sb, "Specifies the input encoding.", 3 );
 190  0
                 append( sb, "Expression: ${encoding}", 3 );
 191  0
                 append( sb, "", 0 );
 192  
 
 193  0
                 append( sb, "locales", 2 );
 194  0
                 append( sb, "A comma separated list of locales supported by Maven. The first valid token will be the default Locale for this instance of the Java Virtual Machine.", 3 );
 195  0
                 append( sb, "Expression: ${locales}", 3 );
 196  0
                 append( sb, "", 0 );
 197  
 
 198  0
                 append( sb, "moduleExcludes", 2 );
 199  0
                 append( sb, "Module type exclusion mappings ex: fml -> **/*-m1.fml (excludes fml files ending in \'-m1.fml\' recursively)\n>The configuration looks like this:\n\n\u00a0\u00a0<moduleExcludes>\n\u00a0\u00a0\u00a0\u00a0<moduleType>filename1.ext,**/*sample.ext</moduleType>\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0moduleType\u00a0can\u00a0be\u00a0one\u00a0of\u00a0\'apt\',\u00a0\'fml\'\u00a0or\u00a0\'xdoc\'.\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0The\u00a0value\u00a0is\u00a0a\u00a0comma\u00a0separated\u00a0list\u00a0of\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0filenames\u00a0or\u00a0fileset\u00a0patterns.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0Here\'s\u00a0an\u00a0example:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<xdoc>changes.xml,navigation.xml</xdoc>\n\u00a0\u00a0</moduleExcludes>\n", 3 );
 200  0
                 append( sb, "", 0 );
 201  
 
 202  0
                 append( sb, "output", 2 );
 203  0
                 append( sb, "Optional parameter to write the output of this help in a given file, instead of writing to the console.\nNote: Could be a relative path.", 3 );
 204  0
                 append( sb, "Expression: ${output}", 3 );
 205  0
                 append( sb, "", 0 );
 206  
 
 207  0
                 append( sb, "outputEncoding (Default: ${project.reporting.outputEncoding})", 2 );
 208  0
                 append( sb, "Specifies the output encoding.", 3 );
 209  0
                 append( sb, "Expression: ${outputEncoding}", 3 );
 210  0
                 append( sb, "", 0 );
 211  
 
 212  0
                 append( sb, "relativizeDecorationLinks (Default: true)", 2 );
 213  0
                 append( sb, "Make links in the site descriptor relative to the project URL. By default, any absolute links that appear in the site descriptor, e.g. banner hrefs, breadcrumbs, menu links, etc., will be made relative to project.url. Links will not be changed if this is set to false, or if the project has no URL defined.", 3 );
 214  0
                 append( sb, "Expression: ${relativizeDecorationLinks}", 3 );
 215  0
                 append( sb, "", 0 );
 216  
 
 217  0
                 append( sb, "siteDirectory (Default: ${basedir}/src/site)", 2 );
 218  0
                 append( sb, "Directory containing the site.xml file and the source for apt, fml and xdoc docs.", 3 );
 219  0
                 append( sb, "", 0 );
 220  
 
 221  0
                 append( sb, "template", 2 );
 222  0
                 append( sb, "Deprecated. use templateFile or skinning instead", 3 );
 223  0
                 append( sb, "", 0 );
 224  0
                 append( sb, "Default template page.", 3 );
 225  0
                 append( sb, "Expression: ${template}", 3 );
 226  0
                 append( sb, "", 0 );
 227  
 
 228  0
                 append( sb, "templateDirectory (Default: src/site)", 2 );
 229  0
                 append( sb, "Deprecated. use templateFile or skinning instead", 3 );
 230  0
                 append( sb, "", 0 );
 231  0
                 append( sb, "Directory containing the template page.", 3 );
 232  0
                 append( sb, "Expression: ${templateDirectory}", 3 );
 233  0
                 append( sb, "", 0 );
 234  
 
 235  0
                 append( sb, "templateFile", 2 );
 236  0
                 append( sb, "The location of a Velocity template file to use. When used, skins and the default templates, CSS and images are disabled. It is highly recommended that you package this as a skin instead.", 3 );
 237  0
                 append( sb, "Expression: ${templateFile}", 3 );
 238  0
                 append( sb, "", 0 );
 239  
 
 240  0
                 append( sb, "xdocDirectory (Default: ${basedir}/xdocs)", 2 );
 241  0
                 append( sb, "Deprecated. use the standard m2 directory layout", 3 );
 242  0
                 append( sb, "", 0 );
 243  0
                 append( sb, "Alternative directory for xdoc source, useful for m1 to m2 migration", 3 );
 244  0
                 append( sb, "", 0 );
 245  
             }
 246  
         }
 247  
 
 248  0
         if ( goal == null || goal.length() <= 0 || "help".equals( goal ) )
 249  
         {
 250  0
             append( sb, "site:help", 0 );
 251  0
             append( sb, "Display help information on maven-site-plugin.\nCall\n\u00a0\u00a0mvn\u00a0site:help\u00a0-Ddetail=true\u00a0-Dgoal=<goal-name>\nto display parameter details.", 1 );
 252  0
             append( sb, "", 0 );
 253  0
             if ( detail )
 254  
             {
 255  0
                 append( sb, "Available parameters:", 1 );
 256  0
                 append( sb, "", 0 );
 257  
 
 258  0
                 append( sb, "detail (Default: false)", 2 );
 259  0
                 append( sb, "If true, display all settable properties for each goal.", 3 );
 260  0
                 append( sb, "Expression: ${detail}", 3 );
 261  0
                 append( sb, "", 0 );
 262  
 
 263  0
                 append( sb, "goal", 2 );
 264  0
                 append( sb, "The name of the goal for which to show help. If unspecified, all goals will be displayed.", 3 );
 265  0
                 append( sb, "Expression: ${goal}", 3 );
 266  0
                 append( sb, "", 0 );
 267  
 
 268  0
                 append( sb, "indentSize (Default: 2)", 2 );
 269  0
                 append( sb, "The number of spaces per indentation level, should be positive.", 3 );
 270  0
                 append( sb, "Expression: ${indentSize}", 3 );
 271  0
                 append( sb, "", 0 );
 272  
 
 273  0
                 append( sb, "lineLength (Default: 80)", 2 );
 274  0
                 append( sb, "The maximum length of a display line, should be positive.", 3 );
 275  0
                 append( sb, "Expression: ${lineLength}", 3 );
 276  0
                 append( sb, "", 0 );
 277  
             }
 278  
         }
 279  
 
 280  0
         if ( goal == null || goal.length() <= 0 || "jar".equals( goal ) )
 281  
         {
 282  0
             append( sb, "site:jar", 0 );
 283  0
             append( sb, "Bundles the site output into a JAR so that it can be deployed to a repository.", 1 );
 284  0
             append( sb, "", 0 );
 285  0
             if ( detail )
 286  
             {
 287  0
                 append( sb, "Available parameters:", 1 );
 288  0
                 append( sb, "", 0 );
 289  
 
 290  0
                 append( sb, "attach (Default: true)", 2 );
 291  0
                 append( sb, "Specifies whether to attach the generated artifact to the project.", 3 );
 292  0
                 append( sb, "Expression: ${site.attach}", 3 );
 293  0
                 append( sb, "", 0 );
 294  
 
 295  0
                 append( sb, "attributes", 2 );
 296  0
                 append( sb, "The template properties for rendering the site.", 3 );
 297  0
                 append( sb, "Expression: ${attributes}", 3 );
 298  0
                 append( sb, "", 0 );
 299  
 
 300  0
                 append( sb, "finalName", 2 );
 301  0
                 append( sb, "Specifies the filename that will be used for the generated jar file. Please note that \'-site\' will be appended to the file name.", 3 );
 302  0
                 append( sb, "Required: Yes", 3 );
 303  0
                 append( sb, "Expression: ${project.build.finalName}", 3 );
 304  0
                 append( sb, "", 0 );
 305  
 
 306  0
                 append( sb, "generatedSiteDirectory (Default: ${project.build.directory}/generated-site)", 2 );
 307  0
                 append( sb, "Directory containing generated documentation. This is used to pick up other source docs that might have been generated at build time.", 3 );
 308  0
                 append( sb, "", 0 );
 309  
 
 310  0
                 append( sb, "generateProjectInfo (Default: true)", 2 );
 311  0
                 append( sb, "Whether to generate the summary page for project reports: project-info.html.", 3 );
 312  0
                 append( sb, "Expression: ${generateProjectInfo}", 3 );
 313  0
                 append( sb, "", 0 );
 314  
 
 315  0
                 append( sb, "generateReports (Default: true)", 2 );
 316  0
                 append( sb, "Convenience parameter that allows you to disable report generation.", 3 );
 317  0
                 append( sb, "Expression: ${generateReports}", 3 );
 318  0
                 append( sb, "", 0 );
 319  
 
 320  0
                 append( sb, "generateSitemap (Default: false)", 2 );
 321  0
                 append( sb, "Generate a sitemap. The result will be a \'sitemap.html\' file at the site root.", 3 );
 322  0
                 append( sb, "Expression: ${generateSitemap}", 3 );
 323  0
                 append( sb, "", 0 );
 324  
 
 325  0
                 append( sb, "inputEncoding (Default: ${project.build.sourceEncoding})", 2 );
 326  0
                 append( sb, "Specifies the input encoding.", 3 );
 327  0
                 append( sb, "Expression: ${encoding}", 3 );
 328  0
                 append( sb, "", 0 );
 329  
 
 330  0
                 append( sb, "jarOutputDirectory", 2 );
 331  0
                 append( sb, "Specifies the directory where the generated jar file will be put.", 3 );
 332  0
                 append( sb, "Required: Yes", 3 );
 333  0
                 append( sb, "Expression: ${project.build.directory}", 3 );
 334  0
                 append( sb, "", 0 );
 335  
 
 336  0
                 append( sb, "locales", 2 );
 337  0
                 append( sb, "A comma separated list of locales supported by Maven. The first valid token will be the default Locale for this instance of the Java Virtual Machine.", 3 );
 338  0
                 append( sb, "Expression: ${locales}", 3 );
 339  0
                 append( sb, "", 0 );
 340  
 
 341  0
                 append( sb, "moduleExcludes", 2 );
 342  0
                 append( sb, "Module type exclusion mappings ex: fml -> **/*-m1.fml (excludes fml files ending in \'-m1.fml\' recursively)\n>The configuration looks like this:\n\n\u00a0\u00a0<moduleExcludes>\n\u00a0\u00a0\u00a0\u00a0<moduleType>filename1.ext,**/*sample.ext</moduleType>\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0moduleType\u00a0can\u00a0be\u00a0one\u00a0of\u00a0\'apt\',\u00a0\'fml\'\u00a0or\u00a0\'xdoc\'.\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0The\u00a0value\u00a0is\u00a0a\u00a0comma\u00a0separated\u00a0list\u00a0of\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0filenames\u00a0or\u00a0fileset\u00a0patterns.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0Here\'s\u00a0an\u00a0example:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<xdoc>changes.xml,navigation.xml</xdoc>\n\u00a0\u00a0</moduleExcludes>\n", 3 );
 343  0
                 append( sb, "", 0 );
 344  
 
 345  0
                 append( sb, "outputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
 346  0
                 append( sb, "Directory where the project sites and report distributions will be generated.", 3 );
 347  0
                 append( sb, "Expression: ${siteOutputDirectory}", 3 );
 348  0
                 append( sb, "", 0 );
 349  
 
 350  0
                 append( sb, "outputEncoding (Default: ${project.reporting.outputEncoding})", 2 );
 351  0
                 append( sb, "Specifies the output encoding.", 3 );
 352  0
                 append( sb, "Expression: ${outputEncoding}", 3 );
 353  0
                 append( sb, "", 0 );
 354  
 
 355  0
                 append( sb, "relativizeDecorationLinks (Default: true)", 2 );
 356  0
                 append( sb, "Make links in the site descriptor relative to the project URL. By default, any absolute links that appear in the site descriptor, e.g. banner hrefs, breadcrumbs, menu links, etc., will be made relative to project.url. Links will not be changed if this is set to false, or if the project has no URL defined.", 3 );
 357  0
                 append( sb, "Expression: ${relativizeDecorationLinks}", 3 );
 358  0
                 append( sb, "", 0 );
 359  
 
 360  0
                 append( sb, "siteDirectory (Default: ${basedir}/src/site)", 2 );
 361  0
                 append( sb, "Directory containing the site.xml file and the source for apt, fml and xdoc docs.", 3 );
 362  0
                 append( sb, "", 0 );
 363  
 
 364  0
                 append( sb, "template", 2 );
 365  0
                 append( sb, "Deprecated. use templateFile or skinning instead", 3 );
 366  0
                 append( sb, "", 0 );
 367  0
                 append( sb, "Default template page.", 3 );
 368  0
                 append( sb, "Expression: ${template}", 3 );
 369  0
                 append( sb, "", 0 );
 370  
 
 371  0
                 append( sb, "templateDirectory (Default: src/site)", 2 );
 372  0
                 append( sb, "Deprecated. use templateFile or skinning instead", 3 );
 373  0
                 append( sb, "", 0 );
 374  0
                 append( sb, "Directory containing the template page.", 3 );
 375  0
                 append( sb, "Expression: ${templateDirectory}", 3 );
 376  0
                 append( sb, "", 0 );
 377  
 
 378  0
                 append( sb, "templateFile", 2 );
 379  0
                 append( sb, "The location of a Velocity template file to use. When used, skins and the default templates, CSS and images are disabled. It is highly recommended that you package this as a skin instead.", 3 );
 380  0
                 append( sb, "Expression: ${templateFile}", 3 );
 381  0
                 append( sb, "", 0 );
 382  
 
 383  0
                 append( sb, "validate (Default: false)", 2 );
 384  0
                 append( sb, "Whether to validate xml input documents. If set to true, all input documents in xml format (in particular xdoc and fml) will be validated and any error will lead to a build failure.", 3 );
 385  0
                 append( sb, "Expression: ${validate}", 3 );
 386  0
                 append( sb, "", 0 );
 387  
 
 388  0
                 append( sb, "xdocDirectory (Default: ${basedir}/xdocs)", 2 );
 389  0
                 append( sb, "Deprecated. use the standard m2 directory layout", 3 );
 390  0
                 append( sb, "", 0 );
 391  0
                 append( sb, "Alternative directory for xdoc source, useful for m1 to m2 migration", 3 );
 392  0
                 append( sb, "", 0 );
 393  
             }
 394  
         }
 395  
 
 396  0
         if ( goal == null || goal.length() <= 0 || "run".equals( goal ) )
 397  
         {
 398  0
             append( sb, "site:run", 0 );
 399  0
             append( sb, "Starts the site up, rendering documents as requested for faster editing. It uses Jetty as the web server.", 1 );
 400  0
             append( sb, "", 0 );
 401  0
             if ( detail )
 402  
             {
 403  0
                 append( sb, "Available parameters:", 1 );
 404  0
                 append( sb, "", 0 );
 405  
 
 406  0
                 append( sb, "attributes", 2 );
 407  0
                 append( sb, "The template properties for rendering the site.", 3 );
 408  0
                 append( sb, "Expression: ${attributes}", 3 );
 409  0
                 append( sb, "", 0 );
 410  
 
 411  0
                 append( sb, "generatedSiteDirectory (Default: ${project.build.directory}/generated-site)", 2 );
 412  0
                 append( sb, "Directory containing generated documentation. This is used to pick up other source docs that might have been generated at build time.", 3 );
 413  0
                 append( sb, "", 0 );
 414  
 
 415  0
                 append( sb, "generateProjectInfo (Default: true)", 2 );
 416  0
                 append( sb, "Whether to generate the summary page for project reports: project-info.html.", 3 );
 417  0
                 append( sb, "Expression: ${generateProjectInfo}", 3 );
 418  0
                 append( sb, "", 0 );
 419  
 
 420  0
                 append( sb, "inputEncoding (Default: ${project.build.sourceEncoding})", 2 );
 421  0
                 append( sb, "Specifies the input encoding.", 3 );
 422  0
                 append( sb, "Expression: ${encoding}", 3 );
 423  0
                 append( sb, "", 0 );
 424  
 
 425  0
                 append( sb, "locales", 2 );
 426  0
                 append( sb, "A comma separated list of locales supported by Maven. The first valid token will be the default Locale for this instance of the Java Virtual Machine.", 3 );
 427  0
                 append( sb, "Expression: ${locales}", 3 );
 428  0
                 append( sb, "", 0 );
 429  
 
 430  0
                 append( sb, "moduleExcludes", 2 );
 431  0
                 append( sb, "Module type exclusion mappings ex: fml -> **/*-m1.fml (excludes fml files ending in \'-m1.fml\' recursively)\n>The configuration looks like this:\n\n\u00a0\u00a0<moduleExcludes>\n\u00a0\u00a0\u00a0\u00a0<moduleType>filename1.ext,**/*sample.ext</moduleType>\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0moduleType\u00a0can\u00a0be\u00a0one\u00a0of\u00a0\'apt\',\u00a0\'fml\'\u00a0or\u00a0\'xdoc\'.\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0The\u00a0value\u00a0is\u00a0a\u00a0comma\u00a0separated\u00a0list\u00a0of\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0filenames\u00a0or\u00a0fileset\u00a0patterns.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0Here\'s\u00a0an\u00a0example:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<xdoc>changes.xml,navigation.xml</xdoc>\n\u00a0\u00a0</moduleExcludes>\n", 3 );
 432  0
                 append( sb, "", 0 );
 433  
 
 434  0
                 append( sb, "outputEncoding (Default: ${project.reporting.outputEncoding})", 2 );
 435  0
                 append( sb, "Specifies the output encoding.", 3 );
 436  0
                 append( sb, "Expression: ${outputEncoding}", 3 );
 437  0
                 append( sb, "", 0 );
 438  
 
 439  0
                 append( sb, "port (Default: 8080)", 2 );
 440  0
                 append( sb, "The port to execute the HTTP server on.", 3 );
 441  0
                 append( sb, "Expression: ${port}", 3 );
 442  0
                 append( sb, "", 0 );
 443  
 
 444  0
                 append( sb, "relativizeDecorationLinks (Default: true)", 2 );
 445  0
                 append( sb, "Make links in the site descriptor relative to the project URL. By default, any absolute links that appear in the site descriptor, e.g. banner hrefs, breadcrumbs, menu links, etc., will be made relative to project.url. Links will not be changed if this is set to false, or if the project has no URL defined.", 3 );
 446  0
                 append( sb, "Expression: ${relativizeDecorationLinks}", 3 );
 447  0
                 append( sb, "", 0 );
 448  
 
 449  0
                 append( sb, "siteDirectory (Default: ${basedir}/src/site)", 2 );
 450  0
                 append( sb, "Directory containing the site.xml file and the source for apt, fml and xdoc docs.", 3 );
 451  0
                 append( sb, "", 0 );
 452  
 
 453  0
                 append( sb, "template", 2 );
 454  0
                 append( sb, "Deprecated. use templateFile or skinning instead", 3 );
 455  0
                 append( sb, "", 0 );
 456  0
                 append( sb, "Default template page.", 3 );
 457  0
                 append( sb, "Expression: ${template}", 3 );
 458  0
                 append( sb, "", 0 );
 459  
 
 460  0
                 append( sb, "templateDirectory (Default: src/site)", 2 );
 461  0
                 append( sb, "Deprecated. use templateFile or skinning instead", 3 );
 462  0
                 append( sb, "", 0 );
 463  0
                 append( sb, "Directory containing the template page.", 3 );
 464  0
                 append( sb, "Expression: ${templateDirectory}", 3 );
 465  0
                 append( sb, "", 0 );
 466  
 
 467  0
                 append( sb, "templateFile", 2 );
 468  0
                 append( sb, "The location of a Velocity template file to use. When used, skins and the default templates, CSS and images are disabled. It is highly recommended that you package this as a skin instead.", 3 );
 469  0
                 append( sb, "Expression: ${templateFile}", 3 );
 470  0
                 append( sb, "", 0 );
 471  
 
 472  0
                 append( sb, "tempWebappDirectory", 2 );
 473  0
                 append( sb, "Where to create the dummy web application.", 3 );
 474  0
                 append( sb, "Expression: ${project.build.directory}/site-webapp", 3 );
 475  0
                 append( sb, "", 0 );
 476  
 
 477  0
                 append( sb, "xdocDirectory (Default: ${basedir}/xdocs)", 2 );
 478  0
                 append( sb, "Deprecated. use the standard m2 directory layout", 3 );
 479  0
                 append( sb, "", 0 );
 480  0
                 append( sb, "Alternative directory for xdoc source, useful for m1 to m2 migration", 3 );
 481  0
                 append( sb, "", 0 );
 482  
             }
 483  
         }
 484  
 
 485  0
         if ( goal == null || goal.length() <= 0 || "site".equals( goal ) )
 486  
         {
 487  0
             append( sb, "site:site", 0 );
 488  0
             append( sb, "Generates the site for a single project.\nNote that links between module sites in a multi module build will not work.\n", 1 );
 489  0
             append( sb, "", 0 );
 490  0
             if ( detail )
 491  
             {
 492  0
                 append( sb, "Available parameters:", 1 );
 493  0
                 append( sb, "", 0 );
 494  
 
 495  0
                 append( sb, "attributes", 2 );
 496  0
                 append( sb, "The template properties for rendering the site.", 3 );
 497  0
                 append( sb, "Expression: ${attributes}", 3 );
 498  0
                 append( sb, "", 0 );
 499  
 
 500  0
                 append( sb, "generatedSiteDirectory (Default: ${project.build.directory}/generated-site)", 2 );
 501  0
                 append( sb, "Directory containing generated documentation. This is used to pick up other source docs that might have been generated at build time.", 3 );
 502  0
                 append( sb, "", 0 );
 503  
 
 504  0
                 append( sb, "generateProjectInfo (Default: true)", 2 );
 505  0
                 append( sb, "Whether to generate the summary page for project reports: project-info.html.", 3 );
 506  0
                 append( sb, "Expression: ${generateProjectInfo}", 3 );
 507  0
                 append( sb, "", 0 );
 508  
 
 509  0
                 append( sb, "generateReports (Default: true)", 2 );
 510  0
                 append( sb, "Convenience parameter that allows you to disable report generation.", 3 );
 511  0
                 append( sb, "Expression: ${generateReports}", 3 );
 512  0
                 append( sb, "", 0 );
 513  
 
 514  0
                 append( sb, "generateSitemap (Default: false)", 2 );
 515  0
                 append( sb, "Generate a sitemap. The result will be a \'sitemap.html\' file at the site root.", 3 );
 516  0
                 append( sb, "Expression: ${generateSitemap}", 3 );
 517  0
                 append( sb, "", 0 );
 518  
 
 519  0
                 append( sb, "inputEncoding (Default: ${project.build.sourceEncoding})", 2 );
 520  0
                 append( sb, "Specifies the input encoding.", 3 );
 521  0
                 append( sb, "Expression: ${encoding}", 3 );
 522  0
                 append( sb, "", 0 );
 523  
 
 524  0
                 append( sb, "locales", 2 );
 525  0
                 append( sb, "A comma separated list of locales supported by Maven. The first valid token will be the default Locale for this instance of the Java Virtual Machine.", 3 );
 526  0
                 append( sb, "Expression: ${locales}", 3 );
 527  0
                 append( sb, "", 0 );
 528  
 
 529  0
                 append( sb, "moduleExcludes", 2 );
 530  0
                 append( sb, "Module type exclusion mappings ex: fml -> **/*-m1.fml (excludes fml files ending in \'-m1.fml\' recursively)\n>The configuration looks like this:\n\n\u00a0\u00a0<moduleExcludes>\n\u00a0\u00a0\u00a0\u00a0<moduleType>filename1.ext,**/*sample.ext</moduleType>\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0moduleType\u00a0can\u00a0be\u00a0one\u00a0of\u00a0\'apt\',\u00a0\'fml\'\u00a0or\u00a0\'xdoc\'.\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0The\u00a0value\u00a0is\u00a0a\u00a0comma\u00a0separated\u00a0list\u00a0of\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0filenames\u00a0or\u00a0fileset\u00a0patterns.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<!--\u00a0Here\'s\u00a0an\u00a0example:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-->\n\u00a0\u00a0\u00a0\u00a0<xdoc>changes.xml,navigation.xml</xdoc>\n\u00a0\u00a0</moduleExcludes>\n", 3 );
 531  0
                 append( sb, "", 0 );
 532  
 
 533  0
                 append( sb, "outputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
 534  0
                 append( sb, "Directory where the project sites and report distributions will be generated.", 3 );
 535  0
                 append( sb, "Expression: ${siteOutputDirectory}", 3 );
 536  0
                 append( sb, "", 0 );
 537  
 
 538  0
                 append( sb, "outputEncoding (Default: ${project.reporting.outputEncoding})", 2 );
 539  0
                 append( sb, "Specifies the output encoding.", 3 );
 540  0
                 append( sb, "Expression: ${outputEncoding}", 3 );
 541  0
                 append( sb, "", 0 );
 542  
 
 543  0
                 append( sb, "relativizeDecorationLinks (Default: true)", 2 );
 544  0
                 append( sb, "Make links in the site descriptor relative to the project URL. By default, any absolute links that appear in the site descriptor, e.g. banner hrefs, breadcrumbs, menu links, etc., will be made relative to project.url. Links will not be changed if this is set to false, or if the project has no URL defined.", 3 );
 545  0
                 append( sb, "Expression: ${relativizeDecorationLinks}", 3 );
 546  0
                 append( sb, "", 0 );
 547  
 
 548  0
                 append( sb, "siteDirectory (Default: ${basedir}/src/site)", 2 );
 549  0
                 append( sb, "Directory containing the site.xml file and the source for apt, fml and xdoc docs.", 3 );
 550  0
                 append( sb, "", 0 );
 551  
 
 552  0
                 append( sb, "template", 2 );
 553  0
                 append( sb, "Deprecated. use templateFile or skinning instead", 3 );
 554  0
                 append( sb, "", 0 );
 555  0
                 append( sb, "Default template page.", 3 );
 556  0
                 append( sb, "Expression: ${template}", 3 );
 557  0
                 append( sb, "", 0 );
 558  
 
 559  0
                 append( sb, "templateDirectory (Default: src/site)", 2 );
 560  0
                 append( sb, "Deprecated. use templateFile or skinning instead", 3 );
 561  0
                 append( sb, "", 0 );
 562  0
                 append( sb, "Directory containing the template page.", 3 );
 563  0
                 append( sb, "Expression: ${templateDirectory}", 3 );
 564  0
                 append( sb, "", 0 );
 565  
 
 566  0
                 append( sb, "templateFile", 2 );
 567  0
                 append( sb, "The location of a Velocity template file to use. When used, skins and the default templates, CSS and images are disabled. It is highly recommended that you package this as a skin instead.", 3 );
 568  0
                 append( sb, "Expression: ${templateFile}", 3 );
 569  0
                 append( sb, "", 0 );
 570  
 
 571  0
                 append( sb, "validate (Default: false)", 2 );
 572  0
                 append( sb, "Whether to validate xml input documents. If set to true, all input documents in xml format (in particular xdoc and fml) will be validated and any error will lead to a build failure.", 3 );
 573  0
                 append( sb, "Expression: ${validate}", 3 );
 574  0
                 append( sb, "", 0 );
 575  
 
 576  0
                 append( sb, "xdocDirectory (Default: ${basedir}/xdocs)", 2 );
 577  0
                 append( sb, "Deprecated. use the standard m2 directory layout", 3 );
 578  0
                 append( sb, "", 0 );
 579  0
                 append( sb, "Alternative directory for xdoc source, useful for m1 to m2 migration", 3 );
 580  0
                 append( sb, "", 0 );
 581  
             }
 582  
         }
 583  
 
 584  0
         if ( goal == null || goal.length() <= 0 || "stage".equals( goal ) )
 585  
         {
 586  0
             append( sb, "site:stage", 0 );
 587  0
             append( sb, "Generates a site in a local staging or mock directory based on the site URL specified in the <distributionManagement> section of the POM.\nIt can be used to test that links between module sites in a multi module build works.\n", 1 );
 588  0
             append( sb, "", 0 );
 589  0
             if ( detail )
 590  
             {
 591  0
                 append( sb, "Available parameters:", 1 );
 592  0
                 append( sb, "", 0 );
 593  
 
 594  0
                 append( sb, "chmod (Default: true)", 2 );
 595  0
                 append( sb, "Whether to run the \'chmod\' command on the remote site after the deploy. Defaults to \'true\'.", 3 );
 596  0
                 append( sb, "Expression: ${maven.site.chmod}", 3 );
 597  0
                 append( sb, "", 0 );
 598  
 
 599  0
                 append( sb, "chmodMode (Default: g+w,a+rX)", 2 );
 600  0
                 append( sb, "The mode used by the \'chmod\' command. Only used if chmod = true. Defaults to \'g+w,a+rX\'.", 3 );
 601  0
                 append( sb, "Expression: ${maven.site.chmod.mode}", 3 );
 602  0
                 append( sb, "", 0 );
 603  
 
 604  0
                 append( sb, "chmodOptions (Default: -Rf)", 2 );
 605  0
                 append( sb, "The options used by the \'chmod\' command. Only used if chmod = true. Defaults to \'-Rf\'.", 3 );
 606  0
                 append( sb, "Expression: ${maven.site.chmod.options}", 3 );
 607  0
                 append( sb, "", 0 );
 608  
 
 609  0
                 append( sb, "inputDirectory", 2 );
 610  0
                 append( sb, "Directory containing the generated project sites and report distributions.", 3 );
 611  0
                 append( sb, "Required: Yes", 3 );
 612  0
                 append( sb, "Expression: ${project.reporting.outputDirectory}", 3 );
 613  0
                 append( sb, "", 0 );
 614  
 
 615  0
                 append( sb, "inputEncoding (Default: ${project.build.sourceEncoding})", 2 );
 616  0
                 append( sb, "Specifies the input encoding.", 3 );
 617  0
                 append( sb, "Expression: ${encoding}", 3 );
 618  0
                 append( sb, "", 0 );
 619  
 
 620  0
                 append( sb, "locales", 2 );
 621  0
                 append( sb, "A comma separated list of locales supported by Maven. The first valid token will be the default Locale for this instance of the Java Virtual Machine.", 3 );
 622  0
                 append( sb, "Expression: ${locales}", 3 );
 623  0
                 append( sb, "", 0 );
 624  
 
 625  0
                 append( sb, "outputEncoding (Default: ${project.reporting.outputEncoding})", 2 );
 626  0
                 append( sb, "Specifies the output encoding.", 3 );
 627  0
                 append( sb, "Expression: ${outputEncoding}", 3 );
 628  0
                 append( sb, "", 0 );
 629  
 
 630  0
                 append( sb, "siteDirectory (Default: ${basedir}/src/site)", 2 );
 631  0
                 append( sb, "Directory containing the site.xml file and the source for apt, fml and xdoc docs.", 3 );
 632  0
                 append( sb, "", 0 );
 633  
 
 634  0
                 append( sb, "stagingDirectory", 2 );
 635  0
                 append( sb, "Staging directory location. This needs to be an absolute path, like C:\\stagingArea\\myProject\\ on Windows or /stagingArea/myProject/ on Unix. If this is not specified, the site will be staged in ${project.build.directory}/staging.", 3 );
 636  0
                 append( sb, "Expression: ${stagingDirectory}", 3 );
 637  0
                 append( sb, "", 0 );
 638  
             }
 639  
         }
 640  
 
 641  0
         if ( goal == null || goal.length() <= 0 || "stage-deploy".equals( goal ) )
 642  
         {
 643  0
             append( sb, "site:stage-deploy", 0 );
 644  0
             append( sb, "Deploys the generated site to a staging or mock directory to the site URL specified in the <distributionManagement> section of the POM. It supports scp and file protocols for deployment.", 1 );
 645  0
             append( sb, "", 0 );
 646  0
             if ( detail )
 647  
             {
 648  0
                 append( sb, "Available parameters:", 1 );
 649  0
                 append( sb, "", 0 );
 650  
 
 651  0
                 append( sb, "chmod (Default: true)", 2 );
 652  0
                 append( sb, "Whether to run the \'chmod\' command on the remote site after the deploy. Defaults to \'true\'.", 3 );
 653  0
                 append( sb, "Expression: ${maven.site.chmod}", 3 );
 654  0
                 append( sb, "", 0 );
 655  
 
 656  0
                 append( sb, "chmodMode (Default: g+w,a+rX)", 2 );
 657  0
                 append( sb, "The mode used by the \'chmod\' command. Only used if chmod = true. Defaults to \'g+w,a+rX\'.", 3 );
 658  0
                 append( sb, "Expression: ${maven.site.chmod.mode}", 3 );
 659  0
                 append( sb, "", 0 );
 660  
 
 661  0
                 append( sb, "chmodOptions (Default: -Rf)", 2 );
 662  0
                 append( sb, "The options used by the \'chmod\' command. Only used if chmod = true. Defaults to \'-Rf\'.", 3 );
 663  0
                 append( sb, "Expression: ${maven.site.chmod.options}", 3 );
 664  0
                 append( sb, "", 0 );
 665  
 
 666  0
                 append( sb, "inputDirectory", 2 );
 667  0
                 append( sb, "Directory containing the generated project sites and report distributions.", 3 );
 668  0
                 append( sb, "Required: Yes", 3 );
 669  0
                 append( sb, "Expression: ${project.reporting.outputDirectory}", 3 );
 670  0
                 append( sb, "", 0 );
 671  
 
 672  0
                 append( sb, "inputEncoding (Default: ${project.build.sourceEncoding})", 2 );
 673  0
                 append( sb, "Specifies the input encoding.", 3 );
 674  0
                 append( sb, "Expression: ${encoding}", 3 );
 675  0
                 append( sb, "", 0 );
 676  
 
 677  0
                 append( sb, "locales", 2 );
 678  0
                 append( sb, "A comma separated list of locales supported by Maven. The first valid token will be the default Locale for this instance of the Java Virtual Machine.", 3 );
 679  0
                 append( sb, "Expression: ${locales}", 3 );
 680  0
                 append( sb, "", 0 );
 681  
 
 682  0
                 append( sb, "outputEncoding (Default: ${project.reporting.outputEncoding})", 2 );
 683  0
                 append( sb, "Specifies the output encoding.", 3 );
 684  0
                 append( sb, "Expression: ${outputEncoding}", 3 );
 685  0
                 append( sb, "", 0 );
 686  
 
 687  0
                 append( sb, "siteDirectory (Default: ${basedir}/src/site)", 2 );
 688  0
                 append( sb, "Directory containing the site.xml file and the source for apt, fml and xdoc docs.", 3 );
 689  0
                 append( sb, "", 0 );
 690  
 
 691  0
                 append( sb, "stagingRepositoryId", 2 );
 692  0
                 append( sb, "The identifier of the repository where the staging site will be deployed. This id will be used to lookup a corresponding <server> entry from the settings.xml. If a matching <server> entry is found, its configured credentials will be used for authentication. If this is not specified, then the corresponding value of distributionManagement.site.id will be taken as default, unless this is not defined either then the String \'stagingSite\' is used. (Note: until v. 2.3 and 3.0-beta-3 the String \'stagingSite\' is always used.)", 3 );
 693  0
                 append( sb, "Expression: ${stagingRepositoryId}", 3 );
 694  0
                 append( sb, "", 0 );
 695  
 
 696  0
                 append( sb, "stagingSiteURL", 2 );
 697  0
                 append( sb, "The staged site will be deployed to this URL. If you don\'t specify this, the default-value will be \'${project.distributionManagement.site.url}/staging\', where \'project\' is either the current project or, in a reactor build, the top level project in the reactor.\nNote that even if you specify this plugin parameter you still need to indicate ${project.distributionManagement.site.url} at least in your top level project in order for relative links between modules to be resolved correctly.\n", 3 );
 698  0
                 append( sb, "Expression: ${stagingSiteURL}", 3 );
 699  0
                 append( sb, "", 0 );
 700  
             }
 701  
         }
 702  
 
 703  0
         if ( getLog().isInfoEnabled() )
 704  
         {
 705  0
             getLog().info( sb.toString() );
 706  
         }
 707  0
     }
 708  
 
 709  
     /**
 710  
      * <p>Repeat a String <code>n</code> times to form a new string.</p>
 711  
      *
 712  
      * @param str String to repeat
 713  
      * @param repeat number of times to repeat str
 714  
      * @return String with repeated String
 715  
      * @throws NegativeArraySizeException if <code>repeat < 0</code>
 716  
      * @throws NullPointerException if str is <code>null</code>
 717  
      */
 718  
     private static String repeat( String str, int repeat )
 719  
     {
 720  0
         StringBuffer buffer = new StringBuffer( repeat * str.length() );
 721  
 
 722  0
         for ( int i = 0; i < repeat; i++ )
 723  
         {
 724  0
             buffer.append( str );
 725  
         }
 726  
 
 727  0
         return buffer.toString();
 728  
     }
 729  
 
 730  
     /** 
 731  
      * Append a description to the buffer by respecting the indentSize and lineLength parameters.
 732  
      * <b>Note</b>: The last character is always a new line.
 733  
      * 
 734  
      * @param sb The buffer to append the description, not <code>null</code>.
 735  
      * @param description The description, not <code>null</code>.
 736  
      * @param indent The base indentation level of each line, must not be negative.
 737  
      */
 738  
     private void append( StringBuffer sb, String description, int indent )
 739  
     {
 740  0
         for ( Iterator it = toLines( description, indent, indentSize, lineLength ).iterator(); it.hasNext(); )
 741  
         {
 742  0
             sb.append( it.next().toString() ).append( '\n' );
 743  
         }
 744  0
     }
 745  
 
 746  
     /** 
 747  
      * Splits the specified text into lines of convenient display length.
 748  
      * 
 749  
      * @param text The text to split into lines, must not be <code>null</code>.
 750  
      * @param indent The base indentation level of each line, must not be negative.
 751  
      * @param indentSize The size of each indentation, must not be negative.
 752  
      * @param lineLength The length of the line, must not be negative.
 753  
      * @return The sequence of display lines, never <code>null</code>.
 754  
      * @throws NegativeArraySizeException if <code>indent < 0</code>
 755  
      */
 756  
     private static List toLines( String text, int indent, int indentSize, int lineLength )
 757  
     {
 758  0
         List lines = new ArrayList();
 759  
 
 760  0
         String ind = repeat( "\t", indent );
 761  0
         String[] plainLines = text.split( "(\r\n)|(\r)|(\n)" );
 762  0
         for ( int i = 0; i < plainLines.length; i++ )
 763  
         {
 764  0
             toLines( lines, ind + plainLines[i], indentSize, lineLength );
 765  
         }
 766  
 
 767  0
         return lines;
 768  
     }
 769  
 
 770  
     /** 
 771  
      * Adds the specified line to the output sequence, performing line wrapping if necessary.
 772  
      * 
 773  
      * @param lines The sequence of display lines, must not be <code>null</code>.
 774  
      * @param line The line to add, must not be <code>null</code>.
 775  
      * @param indentSize The size of each indentation, must not be negative.
 776  
      * @param lineLength The length of the line, must not be negative.
 777  
      */
 778  
     private static void toLines( List lines, String line, int indentSize, int lineLength )
 779  
     {
 780  0
         int lineIndent = getIndentLevel( line );
 781  0
         StringBuffer buf = new StringBuffer( 256 );
 782  0
         String[] tokens = line.split( " +" );
 783  0
         for ( int i = 0; i < tokens.length; i++ )
 784  
         {
 785  0
             String token = tokens[i];
 786  0
             if ( i > 0 )
 787  
             {
 788  0
                 if ( buf.length() + token.length() >= lineLength )
 789  
                 {
 790  0
                     lines.add( buf.toString() );
 791  0
                     buf.setLength( 0 );
 792  0
                     buf.append( repeat( " ", lineIndent * indentSize ) );
 793  
                 }
 794  
                 else
 795  
                 {
 796  0
                     buf.append( ' ' );
 797  
                 }
 798  
             }
 799  0
             for ( int j = 0; j < token.length(); j++ )
 800  
             {
 801  0
                 char c = token.charAt( j );
 802  0
                 if ( c == '\t' )
 803  
                 {
 804  0
                     buf.append( repeat( " ", indentSize - buf.length() % indentSize ) );
 805  
                 }
 806  0
                 else if ( c == '\u00A0' )
 807  
                 {
 808  0
                     buf.append( ' ' );
 809  
                 }
 810  
                 else
 811  
                 {
 812  0
                     buf.append( c );
 813  
                 }
 814  
             }
 815  
         }
 816  0
         lines.add( buf.toString() );
 817  0
     }
 818  
 
 819  
     /** 
 820  
      * Gets the indentation level of the specified line.
 821  
      * 
 822  
      * @param line The line whose indentation level should be retrieved, must not be <code>null</code>.
 823  
      * @return The indentation level of the line.
 824  
      */
 825  
     private static int getIndentLevel( String line )
 826  
     {
 827  0
         int level = 0;
 828  0
         for ( int i = 0; i < line.length() && line.charAt( i ) == '\t'; i++ )
 829  
         {
 830  0
             level++;
 831  
         }
 832  0
         for ( int i = level + 1; i <= level + 4 && i < line.length(); i++ )
 833  
         {
 834  0
             if ( line.charAt( i ) == '\t' )
 835  
             {
 836  0
                 level++;
 837  0
                 break;
 838  
             }
 839  
         }
 840  0
         return level;
 841  
     }
 842  
 }