Coverage Report - org.apache.maven.plugin.assembly.mojos.HelpMojo
 
Classes in this File Line Coverage Branch Coverage Complexity
HelpMojo
0%
0/653
0%
0/114
7.333
 
 1  
 package org.apache.maven.plugin.assembly.mojos;
 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-assembly-plugin.<br/> Call <pre>  mvn assembly:help -Ddetail=true -Dgoal=&lt;goal-name&gt;</pre> to display parameter details.
 12  
  *
 13  
  * @version generated on Mon Oct 11 11:47:04 EDT 2010
 14  
  * @author org.apache.maven.tools.plugin.generator.PluginHelpGenerator (version 2.6)
 15  
  * @goal help
 16  
  * @requiresProject false
 17  
  */
 18  0
 public class HelpMojo
 19  
     extends AbstractMojo
 20  
 {
 21  
     /**
 22  
      * If <code>true</code>, display all settable properties for each goal.
 23  
      * 
 24  
      * @parameter expression="${detail}" default-value="false"
 25  
      */
 26  
     private boolean detail;
 27  
 
 28  
     /**
 29  
      * The name of the goal for which to show help. If unspecified, all goals will be displayed.
 30  
      * 
 31  
      * @parameter expression="${goal}"
 32  
      */
 33  
     private java.lang.String goal;
 34  
 
 35  
     /**
 36  
      * The maximum length of a display line, should be positive.
 37  
      * 
 38  
      * @parameter expression="${lineLength}" default-value="80"
 39  
      */
 40  
     private int lineLength;
 41  
 
 42  
     /**
 43  
      * The number of spaces per indentation level, should be positive.
 44  
      * 
 45  
      * @parameter expression="${indentSize}" default-value="2"
 46  
      */
 47  
     private int indentSize;
 48  
 
 49  
 
 50  
     /** {@inheritDoc} */
 51  
     public void execute()
 52  
         throws MojoExecutionException
 53  
     {
 54  0
         if ( lineLength <= 0 )
 55  
         {
 56  0
             getLog().warn( "The parameter 'lineLength' should be positive, using '80' as default." );
 57  0
             lineLength = 80;
 58  
         }
 59  0
         if ( indentSize <= 0 )
 60  
         {
 61  0
             getLog().warn( "The parameter 'indentSize' should be positive, using '2' as default." );
 62  0
             indentSize = 2;
 63  
         }
 64  
 
 65  0
         StringBuffer sb = new StringBuffer();
 66  
 
 67  0
         append( sb, "org.apache.maven.plugins:maven-assembly-plugin:2.2", 0 );
 68  0
         append( sb, "", 0 );
 69  
 
 70  0
         append( sb, "Maven Assembly Plugin", 0 );
 71  0
         append( sb, "A Maven 2 plugin to create archives of your project\'s sources, classes, dependencies etc. from flexible assembly descriptors.", 1 );
 72  0
         append( sb, "", 0 );
 73  
 
 74  0
         if ( goal == null || goal.length() <= 0 )
 75  
         {
 76  0
             append( sb, "This plugin has 8 goals:", 0 );
 77  0
             append( sb, "", 0 );
 78  
         }
 79  
 
 80  0
         if ( goal == null || goal.length() <= 0 || "assembly".equals( goal ) )
 81  
         {
 82  0
             append( sb, "assembly:assembly", 0 );
 83  0
             append( sb, "Deprecated. Use assembly:single instead! The assembly:assembly mojo leads to non-standard builds.", 1 );
 84  0
             if ( detail )
 85  
             {
 86  0
                 append( sb, "", 0 );
 87  0
                 append( sb, "Assemble an application bundle or distribution using an assembly descriptor from the command line. This goal will force Maven to build all included POMs up to the package phase BEFORE the assembly is processed.\nNOTE: This goal should ONLY be run from the command line, and if building a multimodule project it should be used from the root POM. Use the assembly:single goal for binding your assembly to the lifecycle.\n", 1 );
 88  
             }
 89  0
             append( sb, "", 0 );
 90  0
             if ( detail )
 91  
             {
 92  0
                 append( sb, "Available parameters:", 1 );
 93  0
                 append( sb, "", 0 );
 94  
 
 95  0
                 append( sb, "appendAssemblyId (Default: true)", 2 );
 96  0
                 append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 );
 97  0
                 append( sb, "", 0 );
 98  
 
 99  0
                 append( sb, "archive", 2 );
 100  0
                 append( sb, "This is a set of instructions to the archive builder, especially for building .jar files. It enables you to specify a Manifest file for the jar, in addition to other options.", 3 );
 101  0
                 append( sb, "", 0 );
 102  
 
 103  0
                 append( sb, "archiveBaseDirectory", 2 );
 104  0
                 append( sb, "This is the base directory from which archive files are created. This base directory pre-pended to any <directory> specifications in the assembly descriptor. This is an optional parameter.", 3 );
 105  0
                 append( sb, "", 0 );
 106  
 
 107  0
                 append( sb, "archiverConfig", 2 );
 108  0
                 append( sb, "Allows additional configuration options that are specific to a particular type of archive format. This is intended to capture an XML configuration that will be used to reflectively setup the options on the archiver instance.\nFor instance, to direct an assembly with the \'ear\' format to use a particular deployment descriptor, you should specify the following for the archiverConfig value in your plugin configuration:\n\n<appxml>${project.basedir}/somepath/app.xml</appxml>\n", 3 );
 109  0
                 append( sb, "", 0 );
 110  
 
 111  0
                 append( sb, "attach (Default: true)", 2 );
 112  0
                 append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 );
 113  0
                 append( sb, "", 0 );
 114  
 
 115  0
                 append( sb, "classifier", 2 );
 116  0
                 append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 );
 117  0
                 append( sb, "", 0 );
 118  0
                 append( sb, "This is the artifact classifier to be used for the resultant assembly artifact. Normally, you would use the assembly-id instead of specifying this here.", 3 );
 119  0
                 append( sb, "", 0 );
 120  
 
 121  0
                 append( sb, "descriptor", 2 );
 122  0
                 append( sb, "Deprecated. Please use descriptors instead", 3 );
 123  0
                 append( sb, "", 0 );
 124  0
                 append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 );
 125  0
                 append( sb, "", 0 );
 126  
 
 127  0
                 append( sb, "descriptorId", 2 );
 128  0
                 append( sb, "Deprecated. Please use descriptorRefs instead", 3 );
 129  0
                 append( sb, "", 0 );
 130  0
                 append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 );
 131  0
                 append( sb, "", 0 );
 132  
 
 133  0
                 append( sb, "descriptorRefs", 2 );
 134  0
                 append( sb, "A list of built-in descriptor references to generate from. You can select from bin, jar-with-dependencies, or src.", 3 );
 135  0
                 append( sb, "", 0 );
 136  
 
 137  0
                 append( sb, "descriptors", 2 );
 138  0
                 append( sb, "A list of descriptor files to generate from.", 3 );
 139  0
                 append( sb, "", 0 );
 140  
 
 141  0
                 append( sb, "descriptorSourceDirectory", 2 );
 142  0
                 append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 );
 143  0
                 append( sb, "", 0 );
 144  
 
 145  0
                 append( sb, "dryRun (Default: false)", 2 );
 146  0
                 append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 );
 147  0
                 append( sb, "", 0 );
 148  
 
 149  0
                 append( sb, "executedProject", 2 );
 150  0
                 append( sb, "Get the executed project from the forked lifecycle.", 3 );
 151  0
                 append( sb, "", 0 );
 152  
 
 153  0
                 append( sb, "filters", 2 );
 154  0
                 append( sb, "(no description available)", 3 );
 155  0
                 append( sb, "", 0 );
 156  
 
 157  0
                 append( sb, "finalName (Default: ${project.build.finalName})", 2 );
 158  0
                 append( sb, "The filename of the assembled distribution file.", 3 );
 159  0
                 append( sb, "", 0 );
 160  
 
 161  0
                 append( sb, "ignoreDirFormatExtensions (Default: true)", 2 );
 162  0
                 append( sb, "If this flag is set, the \'.dir\' suffix will be suppressed in the output directory name when using assembly/format == \'dir\' and other formats that begin with \'dir\'.\nNOTE: Since 2.2-beta-3, the default-value for this is true, NOT false as it used to be.", 3 );
 163  0
                 append( sb, "", 0 );
 164  
 
 165  0
                 append( sb, "ignoreMissingDescriptor (Default: false)", 2 );
 166  0
                 append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 );
 167  0
                 append( sb, "", 0 );
 168  
 
 169  0
                 append( sb, "ignorePermissions (Default: false)", 2 );
 170  0
                 append( sb, "Set to true in order to avoid all chmod calls.\n\nNOTE: This will cause the assembly plugin to DISREGARD all fileMode/directoryMode settings in the assembly descriptor, and all file permissions in unpacked dependencies!\n", 3 );
 171  0
                 append( sb, "", 0 );
 172  
 
 173  0
                 append( sb, "includeSite (Default: false)", 2 );
 174  0
                 append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 );
 175  0
                 append( sb, "", 0 );
 176  0
                 append( sb, "Set to true to include the site generated by site:site goal.", 3 );
 177  0
                 append( sb, "", 0 );
 178  
 
 179  0
                 append( sb, "outputDirectory (Default: ${project.build.directory})", 2 );
 180  0
                 append( sb, "The output directory of the assembled distribution file.", 3 );
 181  0
                 append( sb, "", 0 );
 182  
 
 183  0
                 append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 );
 184  0
                 append( sb, "This will cause the assembly to run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.", 3 );
 185  0
                 append( sb, "", 0 );
 186  
 
 187  0
                 append( sb, "skipAssembly (Default: false)", 2 );
 188  0
                 append( sb, "Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build. This makes the assembly plugin more controllable from profiles.", 3 );
 189  0
                 append( sb, "", 0 );
 190  
 
 191  0
                 append( sb, "tarLongFileMode (Default: warn)", 2 );
 192  0
                 append( sb, "Sets the TarArchiver behavior on file paths with more than 100 characters length. Valid values are: \'warn\' (default), \'fail\', \'truncate\', \'gnu\', or \'omit\'.", 3 );
 193  0
                 append( sb, "", 0 );
 194  
 
 195  0
                 append( sb, "updateOnly (Default: false)", 2 );
 196  0
                 append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 );
 197  0
                 append( sb, "", 0 );
 198  
 
 199  0
                 append( sb, "useJvmChmod (Default: false)", 2 );
 200  0
                 append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 );
 201  0
                 append( sb, "", 0 );
 202  
 
 203  0
                 append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 );
 204  0
                 append( sb, "Directory to unpack JARs into if needed", 3 );
 205  0
                 append( sb, "", 0 );
 206  
             }
 207  
         }
 208  
 
 209  0
         if ( goal == null || goal.length() <= 0 || "attached".equals( goal ) )
 210  
         {
 211  0
             append( sb, "assembly:attached", 0 );
 212  0
             append( sb, "Deprecated. Use assembly:single instead! The assembly:attached mojo leads to non-standard builds.", 1 );
 213  0
             if ( detail )
 214  
             {
 215  0
                 append( sb, "", 0 );
 216  0
                 append( sb, "Assemble an application bundle or distribution from an assembly descriptor, WITHOUT first forcing Maven to build all POMs to the package phase (as is required by the assembly:assembly goal).\nNOTE: This goal should ONLY be run from the command line, and if building a multimodule project it should be used from the root POM. Use the assembly:single goal for binding your assembly to the lifecycle.", 1 );
 217  
             }
 218  0
             append( sb, "", 0 );
 219  0
             if ( detail )
 220  
             {
 221  0
                 append( sb, "Available parameters:", 1 );
 222  0
                 append( sb, "", 0 );
 223  
 
 224  0
                 append( sb, "appendAssemblyId (Default: true)", 2 );
 225  0
                 append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 );
 226  0
                 append( sb, "", 0 );
 227  
 
 228  0
                 append( sb, "archive", 2 );
 229  0
                 append( sb, "This is a set of instructions to the archive builder, especially for building .jar files. It enables you to specify a Manifest file for the jar, in addition to other options.", 3 );
 230  0
                 append( sb, "", 0 );
 231  
 
 232  0
                 append( sb, "archiveBaseDirectory", 2 );
 233  0
                 append( sb, "This is the base directory from which archive files are created. This base directory pre-pended to any <directory> specifications in the assembly descriptor. This is an optional parameter.", 3 );
 234  0
                 append( sb, "", 0 );
 235  
 
 236  0
                 append( sb, "archiverConfig", 2 );
 237  0
                 append( sb, "Allows additional configuration options that are specific to a particular type of archive format. This is intended to capture an XML configuration that will be used to reflectively setup the options on the archiver instance.\nFor instance, to direct an assembly with the \'ear\' format to use a particular deployment descriptor, you should specify the following for the archiverConfig value in your plugin configuration:\n\n<appxml>${project.basedir}/somepath/app.xml</appxml>\n", 3 );
 238  0
                 append( sb, "", 0 );
 239  
 
 240  0
                 append( sb, "attach (Default: true)", 2 );
 241  0
                 append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 );
 242  0
                 append( sb, "", 0 );
 243  
 
 244  0
                 append( sb, "classifier", 2 );
 245  0
                 append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 );
 246  0
                 append( sb, "", 0 );
 247  0
                 append( sb, "This is the artifact classifier to be used for the resultant assembly artifact. Normally, you would use the assembly-id instead of specifying this here.", 3 );
 248  0
                 append( sb, "", 0 );
 249  
 
 250  0
                 append( sb, "descriptor", 2 );
 251  0
                 append( sb, "Deprecated. Please use descriptors instead", 3 );
 252  0
                 append( sb, "", 0 );
 253  0
                 append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 );
 254  0
                 append( sb, "", 0 );
 255  
 
 256  0
                 append( sb, "descriptorId", 2 );
 257  0
                 append( sb, "Deprecated. Please use descriptorRefs instead", 3 );
 258  0
                 append( sb, "", 0 );
 259  0
                 append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 );
 260  0
                 append( sb, "", 0 );
 261  
 
 262  0
                 append( sb, "descriptorRefs", 2 );
 263  0
                 append( sb, "A list of built-in descriptor references to generate from. You can select from bin, jar-with-dependencies, or src.", 3 );
 264  0
                 append( sb, "", 0 );
 265  
 
 266  0
                 append( sb, "descriptors", 2 );
 267  0
                 append( sb, "A list of descriptor files to generate from.", 3 );
 268  0
                 append( sb, "", 0 );
 269  
 
 270  0
                 append( sb, "descriptorSourceDirectory", 2 );
 271  0
                 append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 );
 272  0
                 append( sb, "", 0 );
 273  
 
 274  0
                 append( sb, "dryRun (Default: false)", 2 );
 275  0
                 append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 );
 276  0
                 append( sb, "", 0 );
 277  
 
 278  0
                 append( sb, "filters", 2 );
 279  0
                 append( sb, "(no description available)", 3 );
 280  0
                 append( sb, "", 0 );
 281  
 
 282  0
                 append( sb, "finalName (Default: ${project.build.finalName})", 2 );
 283  0
                 append( sb, "The filename of the assembled distribution file.", 3 );
 284  0
                 append( sb, "", 0 );
 285  
 
 286  0
                 append( sb, "ignoreDirFormatExtensions (Default: true)", 2 );
 287  0
                 append( sb, "If this flag is set, the \'.dir\' suffix will be suppressed in the output directory name when using assembly/format == \'dir\' and other formats that begin with \'dir\'.\nNOTE: Since 2.2-beta-3, the default-value for this is true, NOT false as it used to be.", 3 );
 288  0
                 append( sb, "", 0 );
 289  
 
 290  0
                 append( sb, "ignoreMissingDescriptor (Default: false)", 2 );
 291  0
                 append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 );
 292  0
                 append( sb, "", 0 );
 293  
 
 294  0
                 append( sb, "ignorePermissions (Default: false)", 2 );
 295  0
                 append( sb, "Set to true in order to avoid all chmod calls.\n\nNOTE: This will cause the assembly plugin to DISREGARD all fileMode/directoryMode settings in the assembly descriptor, and all file permissions in unpacked dependencies!\n", 3 );
 296  0
                 append( sb, "", 0 );
 297  
 
 298  0
                 append( sb, "includeSite (Default: false)", 2 );
 299  0
                 append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 );
 300  0
                 append( sb, "", 0 );
 301  0
                 append( sb, "Set to true to include the site generated by site:site goal.", 3 );
 302  0
                 append( sb, "", 0 );
 303  
 
 304  0
                 append( sb, "outputDirectory (Default: ${project.build.directory})", 2 );
 305  0
                 append( sb, "The output directory of the assembled distribution file.", 3 );
 306  0
                 append( sb, "", 0 );
 307  
 
 308  0
                 append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 );
 309  0
                 append( sb, "This will cause the assembly to run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.", 3 );
 310  0
                 append( sb, "", 0 );
 311  
 
 312  0
                 append( sb, "skipAssembly (Default: false)", 2 );
 313  0
                 append( sb, "Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build. This makes the assembly plugin more controllable from profiles.", 3 );
 314  0
                 append( sb, "", 0 );
 315  
 
 316  0
                 append( sb, "tarLongFileMode (Default: warn)", 2 );
 317  0
                 append( sb, "Sets the TarArchiver behavior on file paths with more than 100 characters length. Valid values are: \'warn\' (default), \'fail\', \'truncate\', \'gnu\', or \'omit\'.", 3 );
 318  0
                 append( sb, "", 0 );
 319  
 
 320  0
                 append( sb, "updateOnly (Default: false)", 2 );
 321  0
                 append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 );
 322  0
                 append( sb, "", 0 );
 323  
 
 324  0
                 append( sb, "useJvmChmod (Default: false)", 2 );
 325  0
                 append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 );
 326  0
                 append( sb, "", 0 );
 327  
 
 328  0
                 append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 );
 329  0
                 append( sb, "Directory to unpack JARs into if needed", 3 );
 330  0
                 append( sb, "", 0 );
 331  
             }
 332  
         }
 333  
 
 334  0
         if ( goal == null || goal.length() <= 0 || "directory".equals( goal ) )
 335  
         {
 336  0
             append( sb, "assembly:directory", 0 );
 337  0
             append( sb, "Deprecated. Use assembly:single and an assembly with format == dir instead! This mojo is redundant.", 1 );
 338  0
             if ( detail )
 339  
             {
 340  0
                 append( sb, "", 0 );
 341  0
                 append( sb, "Like the assembly:attached goal, assemble an application bundle or distribution using an assembly descriptor from the command line. This goal will force Maven to build all included POMs up to the package phase BEFORE the assembly is processed. This goal differs from assembly:assembly in that it ignores the <formats/> section of the assembly descriptor, and forces the assembly to be created as a directory in the project\'s build-output directory (usually ./target).\nThis goal is also functionally equivalent to using the assembly:assembly goal in conjunction with the dir assembly format.\nNOTE: This goal should ONLY be run from the command line, and if building a multimodule project it should be used from the root POM. Use the assembly:directory-single goal for binding your assembly to the lifecycle.", 1 );
 342  
             }
 343  0
             append( sb, "", 0 );
 344  0
             if ( detail )
 345  
             {
 346  0
                 append( sb, "Available parameters:", 1 );
 347  0
                 append( sb, "", 0 );
 348  
 
 349  0
                 append( sb, "appendAssemblyId (Default: true)", 2 );
 350  0
                 append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 );
 351  0
                 append( sb, "", 0 );
 352  
 
 353  0
                 append( sb, "archive", 2 );
 354  0
                 append( sb, "This is a set of instructions to the archive builder, especially for building .jar files. It enables you to specify a Manifest file for the jar, in addition to other options.", 3 );
 355  0
                 append( sb, "", 0 );
 356  
 
 357  0
                 append( sb, "archiveBaseDirectory", 2 );
 358  0
                 append( sb, "This is the base directory from which archive files are created. This base directory pre-pended to any <directory> specifications in the assembly descriptor. This is an optional parameter.", 3 );
 359  0
                 append( sb, "", 0 );
 360  
 
 361  0
                 append( sb, "archiverConfig", 2 );
 362  0
                 append( sb, "Allows additional configuration options that are specific to a particular type of archive format. This is intended to capture an XML configuration that will be used to reflectively setup the options on the archiver instance.\nFor instance, to direct an assembly with the \'ear\' format to use a particular deployment descriptor, you should specify the following for the archiverConfig value in your plugin configuration:\n\n<appxml>${project.basedir}/somepath/app.xml</appxml>\n", 3 );
 363  0
                 append( sb, "", 0 );
 364  
 
 365  0
                 append( sb, "attach (Default: true)", 2 );
 366  0
                 append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 );
 367  0
                 append( sb, "", 0 );
 368  
 
 369  0
                 append( sb, "classifier", 2 );
 370  0
                 append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 );
 371  0
                 append( sb, "", 0 );
 372  0
                 append( sb, "This is the artifact classifier to be used for the resultant assembly artifact. Normally, you would use the assembly-id instead of specifying this here.", 3 );
 373  0
                 append( sb, "", 0 );
 374  
 
 375  0
                 append( sb, "descriptor", 2 );
 376  0
                 append( sb, "Deprecated. Please use descriptors instead", 3 );
 377  0
                 append( sb, "", 0 );
 378  0
                 append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 );
 379  0
                 append( sb, "", 0 );
 380  
 
 381  0
                 append( sb, "descriptorId", 2 );
 382  0
                 append( sb, "Deprecated. Please use descriptorRefs instead", 3 );
 383  0
                 append( sb, "", 0 );
 384  0
                 append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 );
 385  0
                 append( sb, "", 0 );
 386  
 
 387  0
                 append( sb, "descriptorRefs", 2 );
 388  0
                 append( sb, "A list of built-in descriptor references to generate from. You can select from bin, jar-with-dependencies, or src.", 3 );
 389  0
                 append( sb, "", 0 );
 390  
 
 391  0
                 append( sb, "descriptors", 2 );
 392  0
                 append( sb, "A list of descriptor files to generate from.", 3 );
 393  0
                 append( sb, "", 0 );
 394  
 
 395  0
                 append( sb, "descriptorSourceDirectory", 2 );
 396  0
                 append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 );
 397  0
                 append( sb, "", 0 );
 398  
 
 399  0
                 append( sb, "dryRun (Default: false)", 2 );
 400  0
                 append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 );
 401  0
                 append( sb, "", 0 );
 402  
 
 403  0
                 append( sb, "executedProject", 2 );
 404  0
                 append( sb, "Get the executed project from the forked lifecycle.", 3 );
 405  0
                 append( sb, "", 0 );
 406  
 
 407  0
                 append( sb, "filters", 2 );
 408  0
                 append( sb, "(no description available)", 3 );
 409  0
                 append( sb, "", 0 );
 410  
 
 411  0
                 append( sb, "finalName (Default: ${project.build.finalName})", 2 );
 412  0
                 append( sb, "The filename of the assembled distribution file.", 3 );
 413  0
                 append( sb, "", 0 );
 414  
 
 415  0
                 append( sb, "ignoreDirFormatExtensions (Default: true)", 2 );
 416  0
                 append( sb, "If this flag is set, the \'.dir\' suffix will be suppressed in the output directory name when using assembly/format == \'dir\' and other formats that begin with \'dir\'.\nNOTE: Since 2.2-beta-3, the default-value for this is true, NOT false as it used to be.", 3 );
 417  0
                 append( sb, "", 0 );
 418  
 
 419  0
                 append( sb, "ignoreMissingDescriptor (Default: false)", 2 );
 420  0
                 append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 );
 421  0
                 append( sb, "", 0 );
 422  
 
 423  0
                 append( sb, "ignorePermissions (Default: false)", 2 );
 424  0
                 append( sb, "Set to true in order to avoid all chmod calls.\n\nNOTE: This will cause the assembly plugin to DISREGARD all fileMode/directoryMode settings in the assembly descriptor, and all file permissions in unpacked dependencies!\n", 3 );
 425  0
                 append( sb, "", 0 );
 426  
 
 427  0
                 append( sb, "includeSite (Default: false)", 2 );
 428  0
                 append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 );
 429  0
                 append( sb, "", 0 );
 430  0
                 append( sb, "Set to true to include the site generated by site:site goal.", 3 );
 431  0
                 append( sb, "", 0 );
 432  
 
 433  0
                 append( sb, "outputDirectory (Default: ${project.build.directory})", 2 );
 434  0
                 append( sb, "The output directory of the assembled distribution file.", 3 );
 435  0
                 append( sb, "", 0 );
 436  
 
 437  0
                 append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 );
 438  0
                 append( sb, "This will cause the assembly to run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.", 3 );
 439  0
                 append( sb, "", 0 );
 440  
 
 441  0
                 append( sb, "skipAssembly (Default: false)", 2 );
 442  0
                 append( sb, "Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build. This makes the assembly plugin more controllable from profiles.", 3 );
 443  0
                 append( sb, "", 0 );
 444  
 
 445  0
                 append( sb, "tarLongFileMode (Default: warn)", 2 );
 446  0
                 append( sb, "Sets the TarArchiver behavior on file paths with more than 100 characters length. Valid values are: \'warn\' (default), \'fail\', \'truncate\', \'gnu\', or \'omit\'.", 3 );
 447  0
                 append( sb, "", 0 );
 448  
 
 449  0
                 append( sb, "updateOnly (Default: false)", 2 );
 450  0
                 append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 );
 451  0
                 append( sb, "", 0 );
 452  
 
 453  0
                 append( sb, "useJvmChmod (Default: false)", 2 );
 454  0
                 append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 );
 455  0
                 append( sb, "", 0 );
 456  
 
 457  0
                 append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 );
 458  0
                 append( sb, "Directory to unpack JARs into if needed", 3 );
 459  0
                 append( sb, "", 0 );
 460  
             }
 461  
         }
 462  
 
 463  0
         if ( goal == null || goal.length() <= 0 || "directory-inline".equals( goal ) )
 464  
         {
 465  0
             append( sb, "assembly:directory-inline", 0 );
 466  0
             append( sb, "Deprecated. Use assembly:single and an assembly with format == dir instead! This mojo is redundant, and leads to non-standard builds.", 1 );
 467  0
             if ( detail )
 468  
             {
 469  0
                 append( sb, "", 0 );
 470  0
                 append( sb, "Like the assembly:attached goal, assemble an application bundle or distribution from an assembly descriptor, WITHOUT first forcing Maven to build all POMs to the package phase (as is required by the assembly:assembly goal). This goal differs from assembly:attached in that it ignores the <formats/> section of the assembly descriptor, and forces the assembly to be created as a directory in the project\'s build-output directory (usually ./target).\nThis goal is also functionally equivalent to using the assembly:attached goal in conjunction with the dir assembly format.\nNOTE: This goal should ONLY be run from the command line, and if building a multimodule project it should be used from the root POM. Use the assembly:directory-single goal for binding your assembly to the lifecycle.", 1 );
 471  
             }
 472  0
             append( sb, "", 0 );
 473  0
             if ( detail )
 474  
             {
 475  0
                 append( sb, "Available parameters:", 1 );
 476  0
                 append( sb, "", 0 );
 477  
 
 478  0
                 append( sb, "appendAssemblyId (Default: true)", 2 );
 479  0
                 append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 );
 480  0
                 append( sb, "", 0 );
 481  
 
 482  0
                 append( sb, "archive", 2 );
 483  0
                 append( sb, "This is a set of instructions to the archive builder, especially for building .jar files. It enables you to specify a Manifest file for the jar, in addition to other options.", 3 );
 484  0
                 append( sb, "", 0 );
 485  
 
 486  0
                 append( sb, "archiveBaseDirectory", 2 );
 487  0
                 append( sb, "This is the base directory from which archive files are created. This base directory pre-pended to any <directory> specifications in the assembly descriptor. This is an optional parameter.", 3 );
 488  0
                 append( sb, "", 0 );
 489  
 
 490  0
                 append( sb, "archiverConfig", 2 );
 491  0
                 append( sb, "Allows additional configuration options that are specific to a particular type of archive format. This is intended to capture an XML configuration that will be used to reflectively setup the options on the archiver instance.\nFor instance, to direct an assembly with the \'ear\' format to use a particular deployment descriptor, you should specify the following for the archiverConfig value in your plugin configuration:\n\n<appxml>${project.basedir}/somepath/app.xml</appxml>\n", 3 );
 492  0
                 append( sb, "", 0 );
 493  
 
 494  0
                 append( sb, "attach (Default: true)", 2 );
 495  0
                 append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 );
 496  0
                 append( sb, "", 0 );
 497  
 
 498  0
                 append( sb, "classifier", 2 );
 499  0
                 append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 );
 500  0
                 append( sb, "", 0 );
 501  0
                 append( sb, "This is the artifact classifier to be used for the resultant assembly artifact. Normally, you would use the assembly-id instead of specifying this here.", 3 );
 502  0
                 append( sb, "", 0 );
 503  
 
 504  0
                 append( sb, "descriptor", 2 );
 505  0
                 append( sb, "Deprecated. Please use descriptors instead", 3 );
 506  0
                 append( sb, "", 0 );
 507  0
                 append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 );
 508  0
                 append( sb, "", 0 );
 509  
 
 510  0
                 append( sb, "descriptorId", 2 );
 511  0
                 append( sb, "Deprecated. Please use descriptorRefs instead", 3 );
 512  0
                 append( sb, "", 0 );
 513  0
                 append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 );
 514  0
                 append( sb, "", 0 );
 515  
 
 516  0
                 append( sb, "descriptorRefs", 2 );
 517  0
                 append( sb, "A list of built-in descriptor references to generate from. You can select from bin, jar-with-dependencies, or src.", 3 );
 518  0
                 append( sb, "", 0 );
 519  
 
 520  0
                 append( sb, "descriptors", 2 );
 521  0
                 append( sb, "A list of descriptor files to generate from.", 3 );
 522  0
                 append( sb, "", 0 );
 523  
 
 524  0
                 append( sb, "descriptorSourceDirectory", 2 );
 525  0
                 append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 );
 526  0
                 append( sb, "", 0 );
 527  
 
 528  0
                 append( sb, "dryRun (Default: false)", 2 );
 529  0
                 append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 );
 530  0
                 append( sb, "", 0 );
 531  
 
 532  0
                 append( sb, "filters", 2 );
 533  0
                 append( sb, "(no description available)", 3 );
 534  0
                 append( sb, "", 0 );
 535  
 
 536  0
                 append( sb, "finalName (Default: ${project.build.finalName})", 2 );
 537  0
                 append( sb, "The filename of the assembled distribution file.", 3 );
 538  0
                 append( sb, "", 0 );
 539  
 
 540  0
                 append( sb, "ignoreDirFormatExtensions (Default: true)", 2 );
 541  0
                 append( sb, "If this flag is set, the \'.dir\' suffix will be suppressed in the output directory name when using assembly/format == \'dir\' and other formats that begin with \'dir\'.\nNOTE: Since 2.2-beta-3, the default-value for this is true, NOT false as it used to be.", 3 );
 542  0
                 append( sb, "", 0 );
 543  
 
 544  0
                 append( sb, "ignoreMissingDescriptor (Default: false)", 2 );
 545  0
                 append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 );
 546  0
                 append( sb, "", 0 );
 547  
 
 548  0
                 append( sb, "ignorePermissions (Default: false)", 2 );
 549  0
                 append( sb, "Set to true in order to avoid all chmod calls.\n\nNOTE: This will cause the assembly plugin to DISREGARD all fileMode/directoryMode settings in the assembly descriptor, and all file permissions in unpacked dependencies!\n", 3 );
 550  0
                 append( sb, "", 0 );
 551  
 
 552  0
                 append( sb, "includeSite (Default: false)", 2 );
 553  0
                 append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 );
 554  0
                 append( sb, "", 0 );
 555  0
                 append( sb, "Set to true to include the site generated by site:site goal.", 3 );
 556  0
                 append( sb, "", 0 );
 557  
 
 558  0
                 append( sb, "outputDirectory (Default: ${project.build.directory})", 2 );
 559  0
                 append( sb, "The output directory of the assembled distribution file.", 3 );
 560  0
                 append( sb, "", 0 );
 561  
 
 562  0
                 append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 );
 563  0
                 append( sb, "This will cause the assembly to run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.", 3 );
 564  0
                 append( sb, "", 0 );
 565  
 
 566  0
                 append( sb, "skipAssembly (Default: false)", 2 );
 567  0
                 append( sb, "Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build. This makes the assembly plugin more controllable from profiles.", 3 );
 568  0
                 append( sb, "", 0 );
 569  
 
 570  0
                 append( sb, "tarLongFileMode (Default: warn)", 2 );
 571  0
                 append( sb, "Sets the TarArchiver behavior on file paths with more than 100 characters length. Valid values are: \'warn\' (default), \'fail\', \'truncate\', \'gnu\', or \'omit\'.", 3 );
 572  0
                 append( sb, "", 0 );
 573  
 
 574  0
                 append( sb, "updateOnly (Default: false)", 2 );
 575  0
                 append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 );
 576  0
                 append( sb, "", 0 );
 577  
 
 578  0
                 append( sb, "useJvmChmod (Default: false)", 2 );
 579  0
                 append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 );
 580  0
                 append( sb, "", 0 );
 581  
 
 582  0
                 append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 );
 583  0
                 append( sb, "Directory to unpack JARs into if needed", 3 );
 584  0
                 append( sb, "", 0 );
 585  
             }
 586  
         }
 587  
 
 588  0
         if ( goal == null || goal.length() <= 0 || "directory-single".equals( goal ) )
 589  
         {
 590  0
             append( sb, "assembly:directory-single", 0 );
 591  0
             append( sb, "Deprecated. Use assembly:single and an assembly with format == dir instead! This mojo is redundant.", 1 );
 592  0
             if ( detail )
 593  
             {
 594  0
                 append( sb, "", 0 );
 595  0
                 append( sb, "Like the assembly:attached goal, assemble an application bundle or distribution from an assembly descriptor. This goal is suitable either for binding to the lifecycle or calling directly from the command line (provided all required files are available before the build starts, or are produced by another goal specified before this one on the command line).\nThis goal differs from assembly:single in that it ignores the <formats/> section of the assembly descriptor, and forces the assembly to be created as a directory in the project\'s build-output directory (usually ./target).", 1 );
 596  
             }
 597  0
             append( sb, "", 0 );
 598  0
             if ( detail )
 599  
             {
 600  0
                 append( sb, "Available parameters:", 1 );
 601  0
                 append( sb, "", 0 );
 602  
 
 603  0
                 append( sb, "appendAssemblyId (Default: true)", 2 );
 604  0
                 append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 );
 605  0
                 append( sb, "", 0 );
 606  
 
 607  0
                 append( sb, "archive", 2 );
 608  0
                 append( sb, "This is a set of instructions to the archive builder, especially for building .jar files. It enables you to specify a Manifest file for the jar, in addition to other options.", 3 );
 609  0
                 append( sb, "", 0 );
 610  
 
 611  0
                 append( sb, "archiveBaseDirectory", 2 );
 612  0
                 append( sb, "This is the base directory from which archive files are created. This base directory pre-pended to any <directory> specifications in the assembly descriptor. This is an optional parameter.", 3 );
 613  0
                 append( sb, "", 0 );
 614  
 
 615  0
                 append( sb, "archiverConfig", 2 );
 616  0
                 append( sb, "Allows additional configuration options that are specific to a particular type of archive format. This is intended to capture an XML configuration that will be used to reflectively setup the options on the archiver instance.\nFor instance, to direct an assembly with the \'ear\' format to use a particular deployment descriptor, you should specify the following for the archiverConfig value in your plugin configuration:\n\n<appxml>${project.basedir}/somepath/app.xml</appxml>\n", 3 );
 617  0
                 append( sb, "", 0 );
 618  
 
 619  0
                 append( sb, "attach (Default: true)", 2 );
 620  0
                 append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 );
 621  0
                 append( sb, "", 0 );
 622  
 
 623  0
                 append( sb, "classifier", 2 );
 624  0
                 append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 );
 625  0
                 append( sb, "", 0 );
 626  0
                 append( sb, "This is the artifact classifier to be used for the resultant assembly artifact. Normally, you would use the assembly-id instead of specifying this here.", 3 );
 627  0
                 append( sb, "", 0 );
 628  
 
 629  0
                 append( sb, "descriptor", 2 );
 630  0
                 append( sb, "Deprecated. Please use descriptors instead", 3 );
 631  0
                 append( sb, "", 0 );
 632  0
                 append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 );
 633  0
                 append( sb, "", 0 );
 634  
 
 635  0
                 append( sb, "descriptorId", 2 );
 636  0
                 append( sb, "Deprecated. Please use descriptorRefs instead", 3 );
 637  0
                 append( sb, "", 0 );
 638  0
                 append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 );
 639  0
                 append( sb, "", 0 );
 640  
 
 641  0
                 append( sb, "descriptorRefs", 2 );
 642  0
                 append( sb, "A list of built-in descriptor references to generate from. You can select from bin, jar-with-dependencies, or src.", 3 );
 643  0
                 append( sb, "", 0 );
 644  
 
 645  0
                 append( sb, "descriptors", 2 );
 646  0
                 append( sb, "A list of descriptor files to generate from.", 3 );
 647  0
                 append( sb, "", 0 );
 648  
 
 649  0
                 append( sb, "descriptorSourceDirectory", 2 );
 650  0
                 append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 );
 651  0
                 append( sb, "", 0 );
 652  
 
 653  0
                 append( sb, "dryRun (Default: false)", 2 );
 654  0
                 append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 );
 655  0
                 append( sb, "", 0 );
 656  
 
 657  0
                 append( sb, "filters", 2 );
 658  0
                 append( sb, "(no description available)", 3 );
 659  0
                 append( sb, "", 0 );
 660  
 
 661  0
                 append( sb, "finalName (Default: ${project.build.finalName})", 2 );
 662  0
                 append( sb, "The filename of the assembled distribution file.", 3 );
 663  0
                 append( sb, "", 0 );
 664  
 
 665  0
                 append( sb, "ignoreDirFormatExtensions (Default: true)", 2 );
 666  0
                 append( sb, "If this flag is set, the \'.dir\' suffix will be suppressed in the output directory name when using assembly/format == \'dir\' and other formats that begin with \'dir\'.\nNOTE: Since 2.2-beta-3, the default-value for this is true, NOT false as it used to be.", 3 );
 667  0
                 append( sb, "", 0 );
 668  
 
 669  0
                 append( sb, "ignoreMissingDescriptor (Default: false)", 2 );
 670  0
                 append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 );
 671  0
                 append( sb, "", 0 );
 672  
 
 673  0
                 append( sb, "ignorePermissions (Default: false)", 2 );
 674  0
                 append( sb, "Set to true in order to avoid all chmod calls.\n\nNOTE: This will cause the assembly plugin to DISREGARD all fileMode/directoryMode settings in the assembly descriptor, and all file permissions in unpacked dependencies!\n", 3 );
 675  0
                 append( sb, "", 0 );
 676  
 
 677  0
                 append( sb, "includeSite (Default: false)", 2 );
 678  0
                 append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 );
 679  0
                 append( sb, "", 0 );
 680  0
                 append( sb, "Set to true to include the site generated by site:site goal.", 3 );
 681  0
                 append( sb, "", 0 );
 682  
 
 683  0
                 append( sb, "outputDirectory (Default: ${project.build.directory})", 2 );
 684  0
                 append( sb, "The output directory of the assembled distribution file.", 3 );
 685  0
                 append( sb, "", 0 );
 686  
 
 687  0
                 append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 );
 688  0
                 append( sb, "This will cause the assembly to run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.", 3 );
 689  0
                 append( sb, "", 0 );
 690  
 
 691  0
                 append( sb, "skipAssembly (Default: false)", 2 );
 692  0
                 append( sb, "Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build. This makes the assembly plugin more controllable from profiles.", 3 );
 693  0
                 append( sb, "", 0 );
 694  
 
 695  0
                 append( sb, "tarLongFileMode (Default: warn)", 2 );
 696  0
                 append( sb, "Sets the TarArchiver behavior on file paths with more than 100 characters length. Valid values are: \'warn\' (default), \'fail\', \'truncate\', \'gnu\', or \'omit\'.", 3 );
 697  0
                 append( sb, "", 0 );
 698  
 
 699  0
                 append( sb, "updateOnly (Default: false)", 2 );
 700  0
                 append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 );
 701  0
                 append( sb, "", 0 );
 702  
 
 703  0
                 append( sb, "useJvmChmod (Default: false)", 2 );
 704  0
                 append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 );
 705  0
                 append( sb, "", 0 );
 706  
 
 707  0
                 append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 );
 708  0
                 append( sb, "Directory to unpack JARs into if needed", 3 );
 709  0
                 append( sb, "", 0 );
 710  
             }
 711  
         }
 712  
 
 713  0
         if ( goal == null || goal.length() <= 0 || "help".equals( goal ) )
 714  
         {
 715  0
             append( sb, "assembly:help", 0 );
 716  0
             append( sb, "Display help information on maven-assembly-plugin.\nCall\n\u00a0\u00a0mvn\u00a0assembly:help\u00a0-Ddetail=true\u00a0-Dgoal=<goal-name>\nto display parameter details.", 1 );
 717  0
             append( sb, "", 0 );
 718  0
             if ( detail )
 719  
             {
 720  0
                 append( sb, "Available parameters:", 1 );
 721  0
                 append( sb, "", 0 );
 722  
 
 723  0
                 append( sb, "detail (Default: false)", 2 );
 724  0
                 append( sb, "If true, display all settable properties for each goal.", 3 );
 725  0
                 append( sb, "", 0 );
 726  
 
 727  0
                 append( sb, "goal", 2 );
 728  0
                 append( sb, "The name of the goal for which to show help. If unspecified, all goals will be displayed.", 3 );
 729  0
                 append( sb, "", 0 );
 730  
 
 731  0
                 append( sb, "indentSize (Default: 2)", 2 );
 732  0
                 append( sb, "The number of spaces per indentation level, should be positive.", 3 );
 733  0
                 append( sb, "", 0 );
 734  
 
 735  0
                 append( sb, "lineLength (Default: 80)", 2 );
 736  0
                 append( sb, "The maximum length of a display line, should be positive.", 3 );
 737  0
                 append( sb, "", 0 );
 738  
             }
 739  
         }
 740  
 
 741  0
         if ( goal == null || goal.length() <= 0 || "single".equals( goal ) )
 742  
         {
 743  0
             append( sb, "assembly:single", 0 );
 744  0
             append( sb, "Assemble an application bundle or distribution from an assembly descriptor. This goal is suitable either for binding to the lifecycle or calling directly from the command line (provided all required files are available before the build starts, or are produced by another goal specified before this one on the command line).", 1 );
 745  0
             append( sb, "", 0 );
 746  0
             if ( detail )
 747  
             {
 748  0
                 append( sb, "Available parameters:", 1 );
 749  0
                 append( sb, "", 0 );
 750  
 
 751  0
                 append( sb, "appendAssemblyId (Default: true)", 2 );
 752  0
                 append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 );
 753  0
                 append( sb, "", 0 );
 754  
 
 755  0
                 append( sb, "archive", 2 );
 756  0
                 append( sb, "This is a set of instructions to the archive builder, especially for building .jar files. It enables you to specify a Manifest file for the jar, in addition to other options.", 3 );
 757  0
                 append( sb, "", 0 );
 758  
 
 759  0
                 append( sb, "archiveBaseDirectory", 2 );
 760  0
                 append( sb, "This is the base directory from which archive files are created. This base directory pre-pended to any <directory> specifications in the assembly descriptor. This is an optional parameter.", 3 );
 761  0
                 append( sb, "", 0 );
 762  
 
 763  0
                 append( sb, "archiverConfig", 2 );
 764  0
                 append( sb, "Allows additional configuration options that are specific to a particular type of archive format. This is intended to capture an XML configuration that will be used to reflectively setup the options on the archiver instance.\nFor instance, to direct an assembly with the \'ear\' format to use a particular deployment descriptor, you should specify the following for the archiverConfig value in your plugin configuration:\n\n<appxml>${project.basedir}/somepath/app.xml</appxml>\n", 3 );
 765  0
                 append( sb, "", 0 );
 766  
 
 767  0
                 append( sb, "attach (Default: true)", 2 );
 768  0
                 append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 );
 769  0
                 append( sb, "", 0 );
 770  
 
 771  0
                 append( sb, "classifier", 2 );
 772  0
                 append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 );
 773  0
                 append( sb, "", 0 );
 774  0
                 append( sb, "This is the artifact classifier to be used for the resultant assembly artifact. Normally, you would use the assembly-id instead of specifying this here.", 3 );
 775  0
                 append( sb, "", 0 );
 776  
 
 777  0
                 append( sb, "descriptor", 2 );
 778  0
                 append( sb, "Deprecated. Please use descriptors instead", 3 );
 779  0
                 append( sb, "", 0 );
 780  0
                 append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 );
 781  0
                 append( sb, "", 0 );
 782  
 
 783  0
                 append( sb, "descriptorId", 2 );
 784  0
                 append( sb, "Deprecated. Please use descriptorRefs instead", 3 );
 785  0
                 append( sb, "", 0 );
 786  0
                 append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 );
 787  0
                 append( sb, "", 0 );
 788  
 
 789  0
                 append( sb, "descriptorRefs", 2 );
 790  0
                 append( sb, "A list of built-in descriptor references to generate from. You can select from bin, jar-with-dependencies, or src.", 3 );
 791  0
                 append( sb, "", 0 );
 792  
 
 793  0
                 append( sb, "descriptors", 2 );
 794  0
                 append( sb, "A list of descriptor files to generate from.", 3 );
 795  0
                 append( sb, "", 0 );
 796  
 
 797  0
                 append( sb, "descriptorSourceDirectory", 2 );
 798  0
                 append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 );
 799  0
                 append( sb, "", 0 );
 800  
 
 801  0
                 append( sb, "dryRun (Default: false)", 2 );
 802  0
                 append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 );
 803  0
                 append( sb, "", 0 );
 804  
 
 805  0
                 append( sb, "filters", 2 );
 806  0
                 append( sb, "(no description available)", 3 );
 807  0
                 append( sb, "", 0 );
 808  
 
 809  0
                 append( sb, "finalName (Default: ${project.build.finalName})", 2 );
 810  0
                 append( sb, "The filename of the assembled distribution file.", 3 );
 811  0
                 append( sb, "", 0 );
 812  
 
 813  0
                 append( sb, "ignoreDirFormatExtensions (Default: true)", 2 );
 814  0
                 append( sb, "If this flag is set, the \'.dir\' suffix will be suppressed in the output directory name when using assembly/format == \'dir\' and other formats that begin with \'dir\'.\nNOTE: Since 2.2-beta-3, the default-value for this is true, NOT false as it used to be.", 3 );
 815  0
                 append( sb, "", 0 );
 816  
 
 817  0
                 append( sb, "ignoreMissingDescriptor (Default: false)", 2 );
 818  0
                 append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 );
 819  0
                 append( sb, "", 0 );
 820  
 
 821  0
                 append( sb, "ignorePermissions (Default: false)", 2 );
 822  0
                 append( sb, "Set to true in order to avoid all chmod calls.\n\nNOTE: This will cause the assembly plugin to DISREGARD all fileMode/directoryMode settings in the assembly descriptor, and all file permissions in unpacked dependencies!\n", 3 );
 823  0
                 append( sb, "", 0 );
 824  
 
 825  0
                 append( sb, "includeSite (Default: false)", 2 );
 826  0
                 append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 );
 827  0
                 append( sb, "", 0 );
 828  0
                 append( sb, "Set to true to include the site generated by site:site goal.", 3 );
 829  0
                 append( sb, "", 0 );
 830  
 
 831  0
                 append( sb, "outputDirectory (Default: ${project.build.directory})", 2 );
 832  0
                 append( sb, "The output directory of the assembled distribution file.", 3 );
 833  0
                 append( sb, "", 0 );
 834  
 
 835  0
                 append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 );
 836  0
                 append( sb, "This will cause the assembly to run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.", 3 );
 837  0
                 append( sb, "", 0 );
 838  
 
 839  0
                 append( sb, "skipAssembly (Default: false)", 2 );
 840  0
                 append( sb, "Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build. This makes the assembly plugin more controllable from profiles.", 3 );
 841  0
                 append( sb, "", 0 );
 842  
 
 843  0
                 append( sb, "tarLongFileMode (Default: warn)", 2 );
 844  0
                 append( sb, "Sets the TarArchiver behavior on file paths with more than 100 characters length. Valid values are: \'warn\' (default), \'fail\', \'truncate\', \'gnu\', or \'omit\'.", 3 );
 845  0
                 append( sb, "", 0 );
 846  
 
 847  0
                 append( sb, "updateOnly (Default: false)", 2 );
 848  0
                 append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 );
 849  0
                 append( sb, "", 0 );
 850  
 
 851  0
                 append( sb, "useJvmChmod (Default: false)", 2 );
 852  0
                 append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 );
 853  0
                 append( sb, "", 0 );
 854  
 
 855  0
                 append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 );
 856  0
                 append( sb, "Directory to unpack JARs into if needed", 3 );
 857  0
                 append( sb, "", 0 );
 858  
             }
 859  
         }
 860  
 
 861  0
         if ( goal == null || goal.length() <= 0 || "unpack".equals( goal ) )
 862  
         {
 863  0
             append( sb, "assembly:unpack", 0 );
 864  0
             append( sb, "Deprecated. Use org.apache.maven.plugins:maven-dependency-plugin goal: unpack or unpack-dependencies instead.", 1 );
 865  0
             if ( detail )
 866  
             {
 867  0
                 append( sb, "", 0 );
 868  0
                 append( sb, "Unpack project dependencies. Currently supports dependencies of type jar and zip.", 1 );
 869  
             }
 870  0
             append( sb, "", 0 );
 871  0
             if ( detail )
 872  
             {
 873  0
                 append( sb, "Available parameters:", 1 );
 874  0
                 append( sb, "", 0 );
 875  
 
 876  0
                 append( sb, "workDirectory", 2 );
 877  0
                 append( sb, "Directory to unpack JARs into if needed", 3 );
 878  0
                 append( sb, "", 0 );
 879  
             }
 880  
         }
 881  
 
 882  0
         if ( getLog().isInfoEnabled() )
 883  
         {
 884  0
             getLog().info( sb.toString() );
 885  
         }
 886  0
     }
 887  
 
 888  
     /**
 889  
      * <p>Repeat a String <code>n</code> times to form a new string.</p>
 890  
      *
 891  
      * @param str String to repeat
 892  
      * @param repeat number of times to repeat str
 893  
      * @return String with repeated String
 894  
      * @throws NegativeArraySizeException if <code>repeat < 0</code>
 895  
      * @throws NullPointerException if str is <code>null</code>
 896  
      */
 897  
     private static String repeat( String str, int repeat )
 898  
     {
 899  0
         StringBuffer buffer = new StringBuffer( repeat * str.length() );
 900  
 
 901  0
         for ( int i = 0; i < repeat; i++ )
 902  
         {
 903  0
             buffer.append( str );
 904  
         }
 905  
 
 906  0
         return buffer.toString();
 907  
     }
 908  
 
 909  
     /** 
 910  
      * Append a description to the buffer by respecting the indentSize and lineLength parameters.
 911  
      * <b>Note</b>: The last character is always a new line.
 912  
      * 
 913  
      * @param sb The buffer to append the description, not <code>null</code>.
 914  
      * @param description The description, not <code>null</code>.
 915  
      * @param indent The base indentation level of each line, must not be negative.
 916  
      */
 917  
     private void append( StringBuffer sb, String description, int indent )
 918  
     {
 919  0
         for ( Iterator it = toLines( description, indent, indentSize, lineLength ).iterator(); it.hasNext(); )
 920  
         {
 921  0
             sb.append( it.next().toString() ).append( '\n' );
 922  
         }
 923  0
     }
 924  
 
 925  
     /** 
 926  
      * Splits the specified text into lines of convenient display length.
 927  
      * 
 928  
      * @param text The text to split into lines, must not be <code>null</code>.
 929  
      * @param indent The base indentation level of each line, must not be negative.
 930  
      * @param indentSize The size of each indentation, must not be negative.
 931  
      * @param lineLength The length of the line, must not be negative.
 932  
      * @return The sequence of display lines, never <code>null</code>.
 933  
      * @throws NegativeArraySizeException if <code>indent < 0</code>
 934  
      */
 935  
     private static List toLines( String text, int indent, int indentSize, int lineLength )
 936  
     {
 937  0
         List lines = new ArrayList();
 938  
 
 939  0
         String ind = repeat( "\t", indent );
 940  0
         String[] plainLines = text.split( "(\r\n)|(\r)|(\n)" );
 941  0
         for ( int i = 0; i < plainLines.length; i++ )
 942  
         {
 943  0
             toLines( lines, ind + plainLines[i], indentSize, lineLength );
 944  
         }
 945  
 
 946  0
         return lines;
 947  
     }
 948  
 
 949  
     /** 
 950  
      * Adds the specified line to the output sequence, performing line wrapping if necessary.
 951  
      * 
 952  
      * @param lines The sequence of display lines, must not be <code>null</code>.
 953  
      * @param line The line to add, must not be <code>null</code>.
 954  
      * @param indentSize The size of each indentation, must not be negative.
 955  
      * @param lineLength The length of the line, must not be negative.
 956  
      */
 957  
     private static void toLines( List lines, String line, int indentSize, int lineLength )
 958  
     {
 959  0
         int lineIndent = getIndentLevel( line );
 960  0
         StringBuffer buf = new StringBuffer( 256 );
 961  0
         String[] tokens = line.split( " +" );
 962  0
         for ( int i = 0; i < tokens.length; i++ )
 963  
         {
 964  0
             String token = tokens[i];
 965  0
             if ( i > 0 )
 966  
             {
 967  0
                 if ( buf.length() + token.length() >= lineLength )
 968  
                 {
 969  0
                     lines.add( buf.toString() );
 970  0
                     buf.setLength( 0 );
 971  0
                     buf.append( repeat( " ", lineIndent * indentSize ) );
 972  
                 }
 973  
                 else
 974  
                 {
 975  0
                     buf.append( ' ' );
 976  
                 }
 977  
             }
 978  0
             for ( int j = 0; j < token.length(); j++ )
 979  
             {
 980  0
                 char c = token.charAt( j );
 981  0
                 if ( c == '\t' )
 982  
                 {
 983  0
                     buf.append( repeat( " ", indentSize - buf.length() % indentSize ) );
 984  
                 }
 985  0
                 else if ( c == '\u00A0' )
 986  
                 {
 987  0
                     buf.append( ' ' );
 988  
                 }
 989  
                 else
 990  
                 {
 991  0
                     buf.append( c );
 992  
                 }
 993  
             }
 994  
         }
 995  0
         lines.add( buf.toString() );
 996  0
     }
 997  
 
 998  
     /** 
 999  
      * Gets the indentation level of the specified line.
 1000  
      * 
 1001  
      * @param line The line whose indentation level should be retrieved, must not be <code>null</code>.
 1002  
      * @return The indentation level of the line.
 1003  
      */
 1004  
     private static int getIndentLevel( String line )
 1005  
     {
 1006  0
         int level = 0;
 1007  0
         for ( int i = 0; i < line.length() && line.charAt( i ) == '\t'; i++ )
 1008  
         {
 1009  0
             level++;
 1010  
         }
 1011  0
         for ( int i = level + 1; i <= level + 4 && i < line.length(); i++ )
 1012  
         {
 1013  0
             if ( line.charAt( i ) == '\t' )
 1014  
             {
 1015  0
                 level++;
 1016  0
                 break;
 1017  
             }
 1018  
         }
 1019  0
         return level;
 1020  
     }
 1021  
 }