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
12
13
14
15
16
17
18
19 public class HelpMojo
20 extends AbstractMojo
21 {
22
23
24
25
26
27 private boolean detail;
28
29
30
31
32
33
34 private java.lang.String goal;
35
36
37
38
39
40
41 private int lineLength;
42
43
44
45
46
47
48 private int indentSize;
49
50
51
52 public void execute()
53 throws MojoExecutionException
54 {
55 if ( lineLength <= 0 )
56 {
57 getLog().warn( "The parameter 'lineLength' should be positive, using '80' as default." );
58 lineLength = 80;
59 }
60 if ( indentSize <= 0 )
61 {
62 getLog().warn( "The parameter 'indentSize' should be positive, using '2' as default." );
63 indentSize = 2;
64 }
65
66 StringBuffer sb = new StringBuffer();
67
68 append( sb, "org.apache.maven.plugins:maven-assembly-plugin:2.2.2", 0 );
69 append( sb, "", 0 );
70
71 append( sb, "Maven Assembly Plugin", 0 );
72 append( sb, "A Maven plugin to create archives of your project\'s sources, classes, dependencies etc. from flexible assembly descriptors.", 1 );
73 append( sb, "", 0 );
74
75 if ( goal == null || goal.length() <= 0 )
76 {
77 append( sb, "This plugin has 8 goals:", 0 );
78 append( sb, "", 0 );
79 }
80
81 if ( goal == null || goal.length() <= 0 || "assembly".equals( goal ) )
82 {
83 append( sb, "assembly:assembly", 0 );
84 append( sb, "Deprecated. Use assembly:single instead! The assembly:assembly mojo leads to non-standard builds.", 1 );
85 if ( detail )
86 {
87 append( sb, "", 0 );
88 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 );
89 }
90 append( sb, "", 0 );
91 if ( detail )
92 {
93 append( sb, "Available parameters:", 1 );
94 append( sb, "", 0 );
95
96 append( sb, "appendAssemblyId (Default: true)", 2 );
97 append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 );
98 append( sb, "Expression: ${assembly.appendAssemblyId}", 3 );
99 append( sb, "", 0 );
100
101 append( sb, "archive", 2 );
102 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 );
103 append( sb, "", 0 );
104
105 append( sb, "archiveBaseDirectory", 2 );
106 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 );
107 append( sb, "", 0 );
108
109 append( sb, "archiverConfig", 2 );
110 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 );
111 append( sb, "", 0 );
112
113 append( sb, "attach (Default: true)", 2 );
114 append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 );
115 append( sb, "Expression: ${assembly.attach}", 3 );
116 append( sb, "", 0 );
117
118 append( sb, "classifier", 2 );
119 append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 );
120 append( sb, "", 0 );
121 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 );
122 append( sb, "Expression: ${classifier}", 3 );
123 append( sb, "", 0 );
124
125 append( sb, "descriptor", 2 );
126 append( sb, "Deprecated. Please use descriptors instead", 3 );
127 append( sb, "", 0 );
128 append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 );
129 append( sb, "Expression: ${descriptor}", 3 );
130 append( sb, "", 0 );
131
132 append( sb, "descriptorId", 2 );
133 append( sb, "Deprecated. Please use descriptorRefs instead", 3 );
134 append( sb, "", 0 );
135 append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 );
136 append( sb, "Expression: ${descriptorId}", 3 );
137 append( sb, "", 0 );
138
139 append( sb, "descriptorRefs", 2 );
140 append( sb, "A list of references to assembly descriptors available on the plugin\'s classpath. The default classpath includes these built-in descriptors: bin, jar-with-dependencies, src, and project. You can add others by adding dependencies to the plugin.", 3 );
141 append( sb, "", 0 );
142
143 append( sb, "descriptors", 2 );
144 append( sb, "A list of descriptor files to generate from.", 3 );
145 append( sb, "", 0 );
146
147 append( sb, "descriptorSourceDirectory", 2 );
148 append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 );
149 append( sb, "", 0 );
150
151 append( sb, "dryRun (Default: false)", 2 );
152 append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 );
153 append( sb, "Expression: ${assembly.dryRun}", 3 );
154 append( sb, "", 0 );
155
156 append( sb, "encoding (Default: ${project.build.sourceEncoding})", 2 );
157 append( sb, "The character encoding scheme to be applied when filtering resources.", 3 );
158 append( sb, "Expression: ${encoding}", 3 );
159 append( sb, "", 0 );
160
161 append( sb, "executedProject", 2 );
162 append( sb, "Get the executed project from the forked lifecycle.", 3 );
163 append( sb, "Expression: ${executedProject}", 3 );
164 append( sb, "", 0 );
165
166 append( sb, "filters", 2 );
167 append( sb, "(no description available)", 3 );
168 append( sb, "", 0 );
169
170 append( sb, "finalName (Default: ${project.build.finalName})", 2 );
171 append( sb, "The filename of the assembled distribution file.", 3 );
172 append( sb, "Required: Yes", 3 );
173 append( sb, "", 0 );
174
175 append( sb, "formats", 2 );
176 append( sb, "(no description available)", 3 );
177 append( sb, "", 0 );
178
179 append( sb, "ignoreDirFormatExtensions (Default: true)", 2 );
180 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 );
181 append( sb, "", 0 );
182
183 append( sb, "ignoreMissingDescriptor (Default: false)", 2 );
184 append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 );
185 append( sb, "Expression: ${assembly.ignoreMissingDescriptor}", 3 );
186 append( sb, "", 0 );
187
188 append( sb, "ignorePermissions (Default: false)", 2 );
189 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 );
190 append( sb, "Expression: ${assembly.ignorePermissions}", 3 );
191 append( sb, "", 0 );
192
193 append( sb, "includeSite (Default: false)", 2 );
194 append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 );
195 append( sb, "", 0 );
196 append( sb, "Set to true to include the site generated by site:site goal.", 3 );
197 append( sb, "Expression: ${includeSite}", 3 );
198 append( sb, "", 0 );
199
200 append( sb, "outputDirectory (Default: ${project.build.directory})", 2 );
201 append( sb, "The output directory of the assembled distribution file.", 3 );
202 append( sb, "Required: Yes", 3 );
203 append( sb, "", 0 );
204
205 append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 );
206 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 );
207 append( sb, "Expression: ${assembly.runOnlyAtExecutionRoot}", 3 );
208 append( sb, "", 0 );
209
210 append( sb, "skipAssembly (Default: false)", 2 );
211 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 );
212 append( sb, "Expression: ${assembly.skipAssembly}", 3 );
213 append( sb, "", 0 );
214
215 append( sb, "tarLongFileMode (Default: warn)", 2 );
216 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 );
217 append( sb, "Expression: ${assembly.tarLongFileMode}", 3 );
218 append( sb, "", 0 );
219
220 append( sb, "updateOnly (Default: false)", 2 );
221 append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 );
222 append( sb, "Expression: ${assembly.updatOnly}", 3 );
223 append( sb, "", 0 );
224
225 append( sb, "useJvmChmod (Default: false)", 2 );
226 append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 );
227 append( sb, "Expression: ${assembly.useJvmChmod}", 3 );
228 append( sb, "", 0 );
229
230 append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 );
231 append( sb, "Directory to unpack JARs into if needed", 3 );
232 append( sb, "Required: Yes", 3 );
233 append( sb, "", 0 );
234 }
235 }
236
237 if ( goal == null || goal.length() <= 0 || "attached".equals( goal ) )
238 {
239 append( sb, "assembly:attached", 0 );
240 append( sb, "Deprecated. Use assembly:single instead! The assembly:attached mojo leads to non-standard builds.", 1 );
241 if ( detail )
242 {
243 append( sb, "", 0 );
244 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 );
245 }
246 append( sb, "", 0 );
247 if ( detail )
248 {
249 append( sb, "Available parameters:", 1 );
250 append( sb, "", 0 );
251
252 append( sb, "appendAssemblyId (Default: true)", 2 );
253 append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 );
254 append( sb, "Expression: ${assembly.appendAssemblyId}", 3 );
255 append( sb, "", 0 );
256
257 append( sb, "archive", 2 );
258 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 );
259 append( sb, "", 0 );
260
261 append( sb, "archiveBaseDirectory", 2 );
262 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 );
263 append( sb, "", 0 );
264
265 append( sb, "archiverConfig", 2 );
266 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 );
267 append( sb, "", 0 );
268
269 append( sb, "attach (Default: true)", 2 );
270 append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 );
271 append( sb, "Expression: ${assembly.attach}", 3 );
272 append( sb, "", 0 );
273
274 append( sb, "classifier", 2 );
275 append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 );
276 append( sb, "", 0 );
277 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 );
278 append( sb, "Expression: ${classifier}", 3 );
279 append( sb, "", 0 );
280
281 append( sb, "descriptor", 2 );
282 append( sb, "Deprecated. Please use descriptors instead", 3 );
283 append( sb, "", 0 );
284 append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 );
285 append( sb, "Expression: ${descriptor}", 3 );
286 append( sb, "", 0 );
287
288 append( sb, "descriptorId", 2 );
289 append( sb, "Deprecated. Please use descriptorRefs instead", 3 );
290 append( sb, "", 0 );
291 append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 );
292 append( sb, "Expression: ${descriptorId}", 3 );
293 append( sb, "", 0 );
294
295 append( sb, "descriptorRefs", 2 );
296 append( sb, "A list of references to assembly descriptors available on the plugin\'s classpath. The default classpath includes these built-in descriptors: bin, jar-with-dependencies, src, and project. You can add others by adding dependencies to the plugin.", 3 );
297 append( sb, "", 0 );
298
299 append( sb, "descriptors", 2 );
300 append( sb, "A list of descriptor files to generate from.", 3 );
301 append( sb, "", 0 );
302
303 append( sb, "descriptorSourceDirectory", 2 );
304 append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 );
305 append( sb, "", 0 );
306
307 append( sb, "dryRun (Default: false)", 2 );
308 append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 );
309 append( sb, "Expression: ${assembly.dryRun}", 3 );
310 append( sb, "", 0 );
311
312 append( sb, "encoding (Default: ${project.build.sourceEncoding})", 2 );
313 append( sb, "The character encoding scheme to be applied when filtering resources.", 3 );
314 append( sb, "Expression: ${encoding}", 3 );
315 append( sb, "", 0 );
316
317 append( sb, "filters", 2 );
318 append( sb, "(no description available)", 3 );
319 append( sb, "", 0 );
320
321 append( sb, "finalName (Default: ${project.build.finalName})", 2 );
322 append( sb, "The filename of the assembled distribution file.", 3 );
323 append( sb, "Required: Yes", 3 );
324 append( sb, "", 0 );
325
326 append( sb, "formats", 2 );
327 append( sb, "(no description available)", 3 );
328 append( sb, "", 0 );
329
330 append( sb, "ignoreDirFormatExtensions (Default: true)", 2 );
331 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 );
332 append( sb, "", 0 );
333
334 append( sb, "ignoreMissingDescriptor (Default: false)", 2 );
335 append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 );
336 append( sb, "Expression: ${assembly.ignoreMissingDescriptor}", 3 );
337 append( sb, "", 0 );
338
339 append( sb, "ignorePermissions (Default: false)", 2 );
340 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 );
341 append( sb, "Expression: ${assembly.ignorePermissions}", 3 );
342 append( sb, "", 0 );
343
344 append( sb, "includeSite (Default: false)", 2 );
345 append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 );
346 append( sb, "", 0 );
347 append( sb, "Set to true to include the site generated by site:site goal.", 3 );
348 append( sb, "Expression: ${includeSite}", 3 );
349 append( sb, "", 0 );
350
351 append( sb, "outputDirectory (Default: ${project.build.directory})", 2 );
352 append( sb, "The output directory of the assembled distribution file.", 3 );
353 append( sb, "Required: Yes", 3 );
354 append( sb, "", 0 );
355
356 append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 );
357 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 );
358 append( sb, "Expression: ${assembly.runOnlyAtExecutionRoot}", 3 );
359 append( sb, "", 0 );
360
361 append( sb, "skipAssembly (Default: false)", 2 );
362 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 );
363 append( sb, "Expression: ${assembly.skipAssembly}", 3 );
364 append( sb, "", 0 );
365
366 append( sb, "tarLongFileMode (Default: warn)", 2 );
367 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 );
368 append( sb, "Expression: ${assembly.tarLongFileMode}", 3 );
369 append( sb, "", 0 );
370
371 append( sb, "updateOnly (Default: false)", 2 );
372 append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 );
373 append( sb, "Expression: ${assembly.updatOnly}", 3 );
374 append( sb, "", 0 );
375
376 append( sb, "useJvmChmod (Default: false)", 2 );
377 append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 );
378 append( sb, "Expression: ${assembly.useJvmChmod}", 3 );
379 append( sb, "", 0 );
380
381 append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 );
382 append( sb, "Directory to unpack JARs into if needed", 3 );
383 append( sb, "Required: Yes", 3 );
384 append( sb, "", 0 );
385 }
386 }
387
388 if ( goal == null || goal.length() <= 0 || "directory".equals( goal ) )
389 {
390 append( sb, "assembly:directory", 0 );
391 append( sb, "Deprecated. Use assembly:single and an assembly with format == dir instead! This mojo is redundant.", 1 );
392 if ( detail )
393 {
394 append( sb, "", 0 );
395 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 );
396 }
397 append( sb, "", 0 );
398 if ( detail )
399 {
400 append( sb, "Available parameters:", 1 );
401 append( sb, "", 0 );
402
403 append( sb, "appendAssemblyId (Default: true)", 2 );
404 append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 );
405 append( sb, "Expression: ${assembly.appendAssemblyId}", 3 );
406 append( sb, "", 0 );
407
408 append( sb, "archive", 2 );
409 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 );
410 append( sb, "", 0 );
411
412 append( sb, "archiveBaseDirectory", 2 );
413 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 );
414 append( sb, "", 0 );
415
416 append( sb, "archiverConfig", 2 );
417 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 );
418 append( sb, "", 0 );
419
420 append( sb, "attach (Default: true)", 2 );
421 append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 );
422 append( sb, "Expression: ${assembly.attach}", 3 );
423 append( sb, "", 0 );
424
425 append( sb, "classifier", 2 );
426 append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 );
427 append( sb, "", 0 );
428 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 );
429 append( sb, "Expression: ${classifier}", 3 );
430 append( sb, "", 0 );
431
432 append( sb, "descriptor", 2 );
433 append( sb, "Deprecated. Please use descriptors instead", 3 );
434 append( sb, "", 0 );
435 append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 );
436 append( sb, "Expression: ${descriptor}", 3 );
437 append( sb, "", 0 );
438
439 append( sb, "descriptorId", 2 );
440 append( sb, "Deprecated. Please use descriptorRefs instead", 3 );
441 append( sb, "", 0 );
442 append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 );
443 append( sb, "Expression: ${descriptorId}", 3 );
444 append( sb, "", 0 );
445
446 append( sb, "descriptorRefs", 2 );
447 append( sb, "A list of references to assembly descriptors available on the plugin\'s classpath. The default classpath includes these built-in descriptors: bin, jar-with-dependencies, src, and project. You can add others by adding dependencies to the plugin.", 3 );
448 append( sb, "", 0 );
449
450 append( sb, "descriptors", 2 );
451 append( sb, "A list of descriptor files to generate from.", 3 );
452 append( sb, "", 0 );
453
454 append( sb, "descriptorSourceDirectory", 2 );
455 append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 );
456 append( sb, "", 0 );
457
458 append( sb, "dryRun (Default: false)", 2 );
459 append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 );
460 append( sb, "Expression: ${assembly.dryRun}", 3 );
461 append( sb, "", 0 );
462
463 append( sb, "encoding (Default: ${project.build.sourceEncoding})", 2 );
464 append( sb, "The character encoding scheme to be applied when filtering resources.", 3 );
465 append( sb, "Expression: ${encoding}", 3 );
466 append( sb, "", 0 );
467
468 append( sb, "executedProject", 2 );
469 append( sb, "Get the executed project from the forked lifecycle.", 3 );
470 append( sb, "Expression: ${executedProject}", 3 );
471 append( sb, "", 0 );
472
473 append( sb, "filters", 2 );
474 append( sb, "(no description available)", 3 );
475 append( sb, "", 0 );
476
477 append( sb, "finalName (Default: ${project.build.finalName})", 2 );
478 append( sb, "The filename of the assembled distribution file.", 3 );
479 append( sb, "Required: Yes", 3 );
480 append( sb, "", 0 );
481
482 append( sb, "formats", 2 );
483 append( sb, "(no description available)", 3 );
484 append( sb, "", 0 );
485
486 append( sb, "ignoreDirFormatExtensions (Default: true)", 2 );
487 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 );
488 append( sb, "", 0 );
489
490 append( sb, "ignoreMissingDescriptor (Default: false)", 2 );
491 append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 );
492 append( sb, "Expression: ${assembly.ignoreMissingDescriptor}", 3 );
493 append( sb, "", 0 );
494
495 append( sb, "ignorePermissions (Default: false)", 2 );
496 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 );
497 append( sb, "Expression: ${assembly.ignorePermissions}", 3 );
498 append( sb, "", 0 );
499
500 append( sb, "includeSite (Default: false)", 2 );
501 append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 );
502 append( sb, "", 0 );
503 append( sb, "Set to true to include the site generated by site:site goal.", 3 );
504 append( sb, "Expression: ${includeSite}", 3 );
505 append( sb, "", 0 );
506
507 append( sb, "outputDirectory (Default: ${project.build.directory})", 2 );
508 append( sb, "The output directory of the assembled distribution file.", 3 );
509 append( sb, "Required: Yes", 3 );
510 append( sb, "", 0 );
511
512 append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 );
513 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 );
514 append( sb, "Expression: ${assembly.runOnlyAtExecutionRoot}", 3 );
515 append( sb, "", 0 );
516
517 append( sb, "skipAssembly (Default: false)", 2 );
518 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 );
519 append( sb, "Expression: ${assembly.skipAssembly}", 3 );
520 append( sb, "", 0 );
521
522 append( sb, "tarLongFileMode (Default: warn)", 2 );
523 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 );
524 append( sb, "Expression: ${assembly.tarLongFileMode}", 3 );
525 append( sb, "", 0 );
526
527 append( sb, "updateOnly (Default: false)", 2 );
528 append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 );
529 append( sb, "Expression: ${assembly.updatOnly}", 3 );
530 append( sb, "", 0 );
531
532 append( sb, "useJvmChmod (Default: false)", 2 );
533 append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 );
534 append( sb, "Expression: ${assembly.useJvmChmod}", 3 );
535 append( sb, "", 0 );
536
537 append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 );
538 append( sb, "Directory to unpack JARs into if needed", 3 );
539 append( sb, "Required: Yes", 3 );
540 append( sb, "", 0 );
541 }
542 }
543
544 if ( goal == null || goal.length() <= 0 || "directory-inline".equals( goal ) )
545 {
546 append( sb, "assembly:directory-inline", 0 );
547 append( sb, "Deprecated. Use assembly:single and an assembly with format == dir instead! This mojo is redundant, and leads to non-standard builds.", 1 );
548 if ( detail )
549 {
550 append( sb, "", 0 );
551 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 );
552 }
553 append( sb, "", 0 );
554 if ( detail )
555 {
556 append( sb, "Available parameters:", 1 );
557 append( sb, "", 0 );
558
559 append( sb, "appendAssemblyId (Default: true)", 2 );
560 append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 );
561 append( sb, "Expression: ${assembly.appendAssemblyId}", 3 );
562 append( sb, "", 0 );
563
564 append( sb, "archive", 2 );
565 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 );
566 append( sb, "", 0 );
567
568 append( sb, "archiveBaseDirectory", 2 );
569 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 );
570 append( sb, "", 0 );
571
572 append( sb, "archiverConfig", 2 );
573 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 );
574 append( sb, "", 0 );
575
576 append( sb, "attach (Default: true)", 2 );
577 append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 );
578 append( sb, "Expression: ${assembly.attach}", 3 );
579 append( sb, "", 0 );
580
581 append( sb, "classifier", 2 );
582 append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 );
583 append( sb, "", 0 );
584 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 );
585 append( sb, "Expression: ${classifier}", 3 );
586 append( sb, "", 0 );
587
588 append( sb, "descriptor", 2 );
589 append( sb, "Deprecated. Please use descriptors instead", 3 );
590 append( sb, "", 0 );
591 append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 );
592 append( sb, "Expression: ${descriptor}", 3 );
593 append( sb, "", 0 );
594
595 append( sb, "descriptorId", 2 );
596 append( sb, "Deprecated. Please use descriptorRefs instead", 3 );
597 append( sb, "", 0 );
598 append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 );
599 append( sb, "Expression: ${descriptorId}", 3 );
600 append( sb, "", 0 );
601
602 append( sb, "descriptorRefs", 2 );
603 append( sb, "A list of references to assembly descriptors available on the plugin\'s classpath. The default classpath includes these built-in descriptors: bin, jar-with-dependencies, src, and project. You can add others by adding dependencies to the plugin.", 3 );
604 append( sb, "", 0 );
605
606 append( sb, "descriptors", 2 );
607 append( sb, "A list of descriptor files to generate from.", 3 );
608 append( sb, "", 0 );
609
610 append( sb, "descriptorSourceDirectory", 2 );
611 append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 );
612 append( sb, "", 0 );
613
614 append( sb, "dryRun (Default: false)", 2 );
615 append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 );
616 append( sb, "Expression: ${assembly.dryRun}", 3 );
617 append( sb, "", 0 );
618
619 append( sb, "encoding (Default: ${project.build.sourceEncoding})", 2 );
620 append( sb, "The character encoding scheme to be applied when filtering resources.", 3 );
621 append( sb, "Expression: ${encoding}", 3 );
622 append( sb, "", 0 );
623
624 append( sb, "filters", 2 );
625 append( sb, "(no description available)", 3 );
626 append( sb, "", 0 );
627
628 append( sb, "finalName (Default: ${project.build.finalName})", 2 );
629 append( sb, "The filename of the assembled distribution file.", 3 );
630 append( sb, "Required: Yes", 3 );
631 append( sb, "", 0 );
632
633 append( sb, "formats", 2 );
634 append( sb, "(no description available)", 3 );
635 append( sb, "", 0 );
636
637 append( sb, "ignoreDirFormatExtensions (Default: true)", 2 );
638 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 );
639 append( sb, "", 0 );
640
641 append( sb, "ignoreMissingDescriptor (Default: false)", 2 );
642 append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 );
643 append( sb, "Expression: ${assembly.ignoreMissingDescriptor}", 3 );
644 append( sb, "", 0 );
645
646 append( sb, "ignorePermissions (Default: false)", 2 );
647 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 );
648 append( sb, "Expression: ${assembly.ignorePermissions}", 3 );
649 append( sb, "", 0 );
650
651 append( sb, "includeSite (Default: false)", 2 );
652 append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 );
653 append( sb, "", 0 );
654 append( sb, "Set to true to include the site generated by site:site goal.", 3 );
655 append( sb, "Expression: ${includeSite}", 3 );
656 append( sb, "", 0 );
657
658 append( sb, "outputDirectory (Default: ${project.build.directory})", 2 );
659 append( sb, "The output directory of the assembled distribution file.", 3 );
660 append( sb, "Required: Yes", 3 );
661 append( sb, "", 0 );
662
663 append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 );
664 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 );
665 append( sb, "Expression: ${assembly.runOnlyAtExecutionRoot}", 3 );
666 append( sb, "", 0 );
667
668 append( sb, "skipAssembly (Default: false)", 2 );
669 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 );
670 append( sb, "Expression: ${assembly.skipAssembly}", 3 );
671 append( sb, "", 0 );
672
673 append( sb, "tarLongFileMode (Default: warn)", 2 );
674 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 );
675 append( sb, "Expression: ${assembly.tarLongFileMode}", 3 );
676 append( sb, "", 0 );
677
678 append( sb, "updateOnly (Default: false)", 2 );
679 append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 );
680 append( sb, "Expression: ${assembly.updatOnly}", 3 );
681 append( sb, "", 0 );
682
683 append( sb, "useJvmChmod (Default: false)", 2 );
684 append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 );
685 append( sb, "Expression: ${assembly.useJvmChmod}", 3 );
686 append( sb, "", 0 );
687
688 append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 );
689 append( sb, "Directory to unpack JARs into if needed", 3 );
690 append( sb, "Required: Yes", 3 );
691 append( sb, "", 0 );
692 }
693 }
694
695 if ( goal == null || goal.length() <= 0 || "directory-single".equals( goal ) )
696 {
697 append( sb, "assembly:directory-single", 0 );
698 append( sb, "Deprecated. Use assembly:single and an assembly with format == dir instead! This mojo is redundant.", 1 );
699 if ( detail )
700 {
701 append( sb, "", 0 );
702 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 );
703 }
704 append( sb, "", 0 );
705 if ( detail )
706 {
707 append( sb, "Available parameters:", 1 );
708 append( sb, "", 0 );
709
710 append( sb, "appendAssemblyId (Default: true)", 2 );
711 append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 );
712 append( sb, "Expression: ${assembly.appendAssemblyId}", 3 );
713 append( sb, "", 0 );
714
715 append( sb, "archive", 2 );
716 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 );
717 append( sb, "", 0 );
718
719 append( sb, "archiveBaseDirectory", 2 );
720 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 );
721 append( sb, "", 0 );
722
723 append( sb, "archiverConfig", 2 );
724 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 );
725 append( sb, "", 0 );
726
727 append( sb, "attach (Default: true)", 2 );
728 append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 );
729 append( sb, "Expression: ${assembly.attach}", 3 );
730 append( sb, "", 0 );
731
732 append( sb, "classifier", 2 );
733 append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 );
734 append( sb, "", 0 );
735 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 );
736 append( sb, "Expression: ${classifier}", 3 );
737 append( sb, "", 0 );
738
739 append( sb, "descriptor", 2 );
740 append( sb, "Deprecated. Please use descriptors instead", 3 );
741 append( sb, "", 0 );
742 append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 );
743 append( sb, "Expression: ${descriptor}", 3 );
744 append( sb, "", 0 );
745
746 append( sb, "descriptorId", 2 );
747 append( sb, "Deprecated. Please use descriptorRefs instead", 3 );
748 append( sb, "", 0 );
749 append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 );
750 append( sb, "Expression: ${descriptorId}", 3 );
751 append( sb, "", 0 );
752
753 append( sb, "descriptorRefs", 2 );
754 append( sb, "A list of references to assembly descriptors available on the plugin\'s classpath. The default classpath includes these built-in descriptors: bin, jar-with-dependencies, src, and project. You can add others by adding dependencies to the plugin.", 3 );
755 append( sb, "", 0 );
756
757 append( sb, "descriptors", 2 );
758 append( sb, "A list of descriptor files to generate from.", 3 );
759 append( sb, "", 0 );
760
761 append( sb, "descriptorSourceDirectory", 2 );
762 append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 );
763 append( sb, "", 0 );
764
765 append( sb, "dryRun (Default: false)", 2 );
766 append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 );
767 append( sb, "Expression: ${assembly.dryRun}", 3 );
768 append( sb, "", 0 );
769
770 append( sb, "encoding (Default: ${project.build.sourceEncoding})", 2 );
771 append( sb, "The character encoding scheme to be applied when filtering resources.", 3 );
772 append( sb, "Expression: ${encoding}", 3 );
773 append( sb, "", 0 );
774
775 append( sb, "filters", 2 );
776 append( sb, "(no description available)", 3 );
777 append( sb, "", 0 );
778
779 append( sb, "finalName (Default: ${project.build.finalName})", 2 );
780 append( sb, "The filename of the assembled distribution file.", 3 );
781 append( sb, "Required: Yes", 3 );
782 append( sb, "", 0 );
783
784 append( sb, "formats", 2 );
785 append( sb, "(no description available)", 3 );
786 append( sb, "", 0 );
787
788 append( sb, "ignoreDirFormatExtensions (Default: true)", 2 );
789 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 );
790 append( sb, "", 0 );
791
792 append( sb, "ignoreMissingDescriptor (Default: false)", 2 );
793 append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 );
794 append( sb, "Expression: ${assembly.ignoreMissingDescriptor}", 3 );
795 append( sb, "", 0 );
796
797 append( sb, "ignorePermissions (Default: false)", 2 );
798 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 );
799 append( sb, "Expression: ${assembly.ignorePermissions}", 3 );
800 append( sb, "", 0 );
801
802 append( sb, "includeSite (Default: false)", 2 );
803 append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 );
804 append( sb, "", 0 );
805 append( sb, "Set to true to include the site generated by site:site goal.", 3 );
806 append( sb, "Expression: ${includeSite}", 3 );
807 append( sb, "", 0 );
808
809 append( sb, "outputDirectory (Default: ${project.build.directory})", 2 );
810 append( sb, "The output directory of the assembled distribution file.", 3 );
811 append( sb, "Required: Yes", 3 );
812 append( sb, "", 0 );
813
814 append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 );
815 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 );
816 append( sb, "Expression: ${assembly.runOnlyAtExecutionRoot}", 3 );
817 append( sb, "", 0 );
818
819 append( sb, "skipAssembly (Default: false)", 2 );
820 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 );
821 append( sb, "Expression: ${assembly.skipAssembly}", 3 );
822 append( sb, "", 0 );
823
824 append( sb, "tarLongFileMode (Default: warn)", 2 );
825 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 );
826 append( sb, "Expression: ${assembly.tarLongFileMode}", 3 );
827 append( sb, "", 0 );
828
829 append( sb, "updateOnly (Default: false)", 2 );
830 append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 );
831 append( sb, "Expression: ${assembly.updatOnly}", 3 );
832 append( sb, "", 0 );
833
834 append( sb, "useJvmChmod (Default: false)", 2 );
835 append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 );
836 append( sb, "Expression: ${assembly.useJvmChmod}", 3 );
837 append( sb, "", 0 );
838
839 append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 );
840 append( sb, "Directory to unpack JARs into if needed", 3 );
841 append( sb, "Required: Yes", 3 );
842 append( sb, "", 0 );
843 }
844 }
845
846 if ( goal == null || goal.length() <= 0 || "help".equals( goal ) )
847 {
848 append( sb, "assembly:help", 0 );
849 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 );
850 append( sb, "", 0 );
851 if ( detail )
852 {
853 append( sb, "Available parameters:", 1 );
854 append( sb, "", 0 );
855
856 append( sb, "detail (Default: false)", 2 );
857 append( sb, "If true, display all settable properties for each goal.", 3 );
858 append( sb, "Expression: ${detail}", 3 );
859 append( sb, "", 0 );
860
861 append( sb, "goal", 2 );
862 append( sb, "The name of the goal for which to show help. If unspecified, all goals will be displayed.", 3 );
863 append( sb, "Expression: ${goal}", 3 );
864 append( sb, "", 0 );
865
866 append( sb, "indentSize (Default: 2)", 2 );
867 append( sb, "The number of spaces per indentation level, should be positive.", 3 );
868 append( sb, "Expression: ${indentSize}", 3 );
869 append( sb, "", 0 );
870
871 append( sb, "lineLength (Default: 80)", 2 );
872 append( sb, "The maximum length of a display line, should be positive.", 3 );
873 append( sb, "Expression: ${lineLength}", 3 );
874 append( sb, "", 0 );
875 }
876 }
877
878 if ( goal == null || goal.length() <= 0 || "single".equals( goal ) )
879 {
880 append( sb, "assembly:single", 0 );
881 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 );
882 append( sb, "", 0 );
883 if ( detail )
884 {
885 append( sb, "Available parameters:", 1 );
886 append( sb, "", 0 );
887
888 append( sb, "appendAssemblyId (Default: true)", 2 );
889 append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 );
890 append( sb, "Expression: ${assembly.appendAssemblyId}", 3 );
891 append( sb, "", 0 );
892
893 append( sb, "archive", 2 );
894 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 );
895 append( sb, "", 0 );
896
897 append( sb, "archiveBaseDirectory", 2 );
898 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 );
899 append( sb, "", 0 );
900
901 append( sb, "archiverConfig", 2 );
902 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 );
903 append( sb, "", 0 );
904
905 append( sb, "attach (Default: true)", 2 );
906 append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 );
907 append( sb, "Expression: ${assembly.attach}", 3 );
908 append( sb, "", 0 );
909
910 append( sb, "classifier", 2 );
911 append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 );
912 append( sb, "", 0 );
913 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 );
914 append( sb, "Expression: ${classifier}", 3 );
915 append( sb, "", 0 );
916
917 append( sb, "descriptor", 2 );
918 append( sb, "Deprecated. Please use descriptors instead", 3 );
919 append( sb, "", 0 );
920 append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 );
921 append( sb, "Expression: ${descriptor}", 3 );
922 append( sb, "", 0 );
923
924 append( sb, "descriptorId", 2 );
925 append( sb, "Deprecated. Please use descriptorRefs instead", 3 );
926 append( sb, "", 0 );
927 append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 );
928 append( sb, "Expression: ${descriptorId}", 3 );
929 append( sb, "", 0 );
930
931 append( sb, "descriptorRefs", 2 );
932 append( sb, "A list of references to assembly descriptors available on the plugin\'s classpath. The default classpath includes these built-in descriptors: bin, jar-with-dependencies, src, and project. You can add others by adding dependencies to the plugin.", 3 );
933 append( sb, "", 0 );
934
935 append( sb, "descriptors", 2 );
936 append( sb, "A list of descriptor files to generate from.", 3 );
937 append( sb, "", 0 );
938
939 append( sb, "descriptorSourceDirectory", 2 );
940 append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 );
941 append( sb, "", 0 );
942
943 append( sb, "dryRun (Default: false)", 2 );
944 append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 );
945 append( sb, "Expression: ${assembly.dryRun}", 3 );
946 append( sb, "", 0 );
947
948 append( sb, "encoding (Default: ${project.build.sourceEncoding})", 2 );
949 append( sb, "The character encoding scheme to be applied when filtering resources.", 3 );
950 append( sb, "Expression: ${encoding}", 3 );
951 append( sb, "", 0 );
952
953 append( sb, "filters", 2 );
954 append( sb, "(no description available)", 3 );
955 append( sb, "", 0 );
956
957 append( sb, "finalName (Default: ${project.build.finalName})", 2 );
958 append( sb, "The filename of the assembled distribution file.", 3 );
959 append( sb, "Required: Yes", 3 );
960 append( sb, "", 0 );
961
962 append( sb, "formats", 2 );
963 append( sb, "(no description available)", 3 );
964 append( sb, "", 0 );
965
966 append( sb, "ignoreDirFormatExtensions (Default: true)", 2 );
967 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 );
968 append( sb, "", 0 );
969
970 append( sb, "ignoreMissingDescriptor (Default: false)", 2 );
971 append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 );
972 append( sb, "Expression: ${assembly.ignoreMissingDescriptor}", 3 );
973 append( sb, "", 0 );
974
975 append( sb, "ignorePermissions (Default: false)", 2 );
976 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 );
977 append( sb, "Expression: ${assembly.ignorePermissions}", 3 );
978 append( sb, "", 0 );
979
980 append( sb, "includeSite (Default: false)", 2 );
981 append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 );
982 append( sb, "", 0 );
983 append( sb, "Set to true to include the site generated by site:site goal.", 3 );
984 append( sb, "Expression: ${includeSite}", 3 );
985 append( sb, "", 0 );
986
987 append( sb, "outputDirectory (Default: ${project.build.directory})", 2 );
988 append( sb, "The output directory of the assembled distribution file.", 3 );
989 append( sb, "Required: Yes", 3 );
990 append( sb, "", 0 );
991
992 append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 );
993 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 );
994 append( sb, "Expression: ${assembly.runOnlyAtExecutionRoot}", 3 );
995 append( sb, "", 0 );
996
997 append( sb, "skipAssembly (Default: false)", 2 );
998 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 );
999 append( sb, "Expression: ${assembly.skipAssembly}", 3 );
1000 append( sb, "", 0 );
1001
1002 append( sb, "tarLongFileMode (Default: warn)", 2 );
1003 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 );
1004 append( sb, "Expression: ${assembly.tarLongFileMode}", 3 );
1005 append( sb, "", 0 );
1006
1007 append( sb, "updateOnly (Default: false)", 2 );
1008 append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 );
1009 append( sb, "Expression: ${assembly.updatOnly}", 3 );
1010 append( sb, "", 0 );
1011
1012 append( sb, "useJvmChmod (Default: false)", 2 );
1013 append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 );
1014 append( sb, "Expression: ${assembly.useJvmChmod}", 3 );
1015 append( sb, "", 0 );
1016
1017 append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 );
1018 append( sb, "Directory to unpack JARs into if needed", 3 );
1019 append( sb, "Required: Yes", 3 );
1020 append( sb, "", 0 );
1021 }
1022 }
1023
1024 if ( goal == null || goal.length() <= 0 || "unpack".equals( goal ) )
1025 {
1026 append( sb, "assembly:unpack", 0 );
1027 append( sb, "Deprecated. Use org.apache.maven.plugins:maven-dependency-plugin goal: unpack or unpack-dependencies instead.", 1 );
1028 if ( detail )
1029 {
1030 append( sb, "", 0 );
1031 append( sb, "Unpack project dependencies. Currently supports dependencies of type jar and zip.", 1 );
1032 }
1033 append( sb, "", 0 );
1034 if ( detail )
1035 {
1036 append( sb, "Available parameters:", 1 );
1037 append( sb, "", 0 );
1038
1039 append( sb, "workDirectory", 2 );
1040 append( sb, "Directory to unpack JARs into if needed", 3 );
1041 append( sb, "Required: Yes", 3 );
1042 append( sb, "Expression: ${project.build.directory}/assembly/work", 3 );
1043 append( sb, "", 0 );
1044 }
1045 }
1046
1047 if ( getLog().isInfoEnabled() )
1048 {
1049 getLog().info( sb.toString() );
1050 }
1051 }
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062 private static String repeat( String str, int repeat )
1063 {
1064 StringBuffer buffer = new StringBuffer( repeat * str.length() );
1065
1066 for ( int i = 0; i < repeat; i++ )
1067 {
1068 buffer.append( str );
1069 }
1070
1071 return buffer.toString();
1072 }
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082 private void append( StringBuffer sb, String description, int indent )
1083 {
1084 for ( Iterator it = toLines( description, indent, indentSize, lineLength ).iterator(); it.hasNext(); )
1085 {
1086 sb.append( it.next().toString() ).append( '\n' );
1087 }
1088 }
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100 private static List toLines( String text, int indent, int indentSize, int lineLength )
1101 {
1102 List lines = new ArrayList();
1103
1104 String ind = repeat( "\t", indent );
1105 String[] plainLines = text.split( "(\r\n)|(\r)|(\n)" );
1106 for ( int i = 0; i < plainLines.length; i++ )
1107 {
1108 toLines( lines, ind + plainLines[i], indentSize, lineLength );
1109 }
1110
1111 return lines;
1112 }
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122 private static void toLines( List lines, String line, int indentSize, int lineLength )
1123 {
1124 int lineIndent = getIndentLevel( line );
1125 StringBuffer buf = new StringBuffer( 256 );
1126 String[] tokens = line.split( " +" );
1127 for ( int i = 0; i < tokens.length; i++ )
1128 {
1129 String token = tokens[i];
1130 if ( i > 0 )
1131 {
1132 if ( buf.length() + token.length() >= lineLength )
1133 {
1134 lines.add( buf.toString() );
1135 buf.setLength( 0 );
1136 buf.append( repeat( " ", lineIndent * indentSize ) );
1137 }
1138 else
1139 {
1140 buf.append( ' ' );
1141 }
1142 }
1143 for ( int j = 0; j < token.length(); j++ )
1144 {
1145 char c = token.charAt( j );
1146 if ( c == '\t' )
1147 {
1148 buf.append( repeat( " ", indentSize - buf.length() % indentSize ) );
1149 }
1150 else if ( c == '\u00A0' )
1151 {
1152 buf.append( ' ' );
1153 }
1154 else
1155 {
1156 buf.append( c );
1157 }
1158 }
1159 }
1160 lines.add( buf.toString() );
1161 }
1162
1163
1164
1165
1166
1167
1168
1169 private static int getIndentLevel( String line )
1170 {
1171 int level = 0;
1172 for ( int i = 0; i < line.length() && line.charAt( i ) == '\t'; i++ )
1173 {
1174 level++;
1175 }
1176 for ( int i = level + 1; i <= level + 4 && i < line.length(); i++ )
1177 {
1178 if ( line.charAt( i ) == '\t' )
1179 {
1180 level++;
1181 break;
1182 }
1183 }
1184 return level;
1185 }
1186 }