1 package org.apache.maven.scm.plugin;
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 @SuppressWarnings( "all" )
20 public class HelpMojo
21 extends AbstractMojo
22 {
23
24
25
26
27
28 private boolean detail;
29
30
31
32
33
34
35 private java.lang.String goal;
36
37
38
39
40
41
42 private int lineLength;
43
44
45
46
47
48
49 private int indentSize;
50
51
52
53 public void execute()
54 throws MojoExecutionException
55 {
56 if ( lineLength <= 0 )
57 {
58 getLog().warn( "The parameter 'lineLength' should be positive, using '80' as default." );
59 lineLength = 80;
60 }
61 if ( indentSize <= 0 )
62 {
63 getLog().warn( "The parameter 'indentSize' should be positive, using '2' as default." );
64 indentSize = 2;
65 }
66
67 StringBuffer sb = new StringBuffer();
68
69 append( sb, "org.apache.maven.plugins:maven-scm-plugin:1.8.1", 0 );
70 append( sb, "", 0 );
71
72 append( sb, "Maven SCM Plugin", 0 );
73 append( sb, "Maven Plugin that allows accessing different SCMs.", 1 );
74 append( sb, "", 0 );
75
76 if ( goal == null || goal.length() <= 0 )
77 {
78 append( sb, "This plugin has 19 goals:", 0 );
79 append( sb, "", 0 );
80 }
81
82 if ( goal == null || goal.length() <= 0 || "add".equals( goal ) )
83 {
84 append( sb, "scm:add", 0 );
85 append( sb, "Add a file set to the project.", 1 );
86 append( sb, "", 0 );
87 if ( detail )
88 {
89 append( sb, "Available parameters:", 1 );
90 append( sb, "", 0 );
91
92 append( sb, "basedir", 2 );
93 append( sb, "The base directory.", 3 );
94 append( sb, "Required: Yes", 3 );
95 append( sb, "Expression: ${basedir}", 3 );
96 append( sb, "", 0 );
97
98 append( sb, "connectionType (Default: connection)", 2 );
99 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
100 append( sb, "Expression: ${connectionType}", 3 );
101 append( sb, "", 0 );
102
103 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
104 append( sb, "The SCM connection URL.", 3 );
105 append( sb, "Expression: ${connectionUrl}", 3 );
106 append( sb, "", 0 );
107
108 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
109 append( sb, "The SCM connection URL for developers.", 3 );
110 append( sb, "Expression: ${connectionUrl}", 3 );
111 append( sb, "", 0 );
112
113 append( sb, "excludes", 2 );
114 append( sb, "Comma separated list of excludes file pattern.", 3 );
115 append( sb, "Expression: ${excludes}", 3 );
116 append( sb, "", 0 );
117
118 append( sb, "includes", 2 );
119 append( sb, "Comma separated list of includes file pattern.", 3 );
120 append( sb, "Expression: ${includes}", 3 );
121 append( sb, "", 0 );
122
123 append( sb, "passphrase", 2 );
124 append( sb, "The passphrase (used by java svn).", 3 );
125 append( sb, "Expression: ${passphrase}", 3 );
126 append( sb, "", 0 );
127
128 append( sb, "password", 2 );
129 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
130 append( sb, "Expression: ${password}", 3 );
131 append( sb, "", 0 );
132
133 append( sb, "privateKey", 2 );
134 append( sb, "The private key (used by java svn).", 3 );
135 append( sb, "Expression: ${privateKey}", 3 );
136 append( sb, "", 0 );
137
138 append( sb, "providerImplementations", 2 );
139 append( sb, "List of provider implementations.", 3 );
140 append( sb, "", 0 );
141
142 append( sb, "pushChanges (Default: true)", 2 );
143 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
144 append( sb, "Expression: ${pushChanges}", 3 );
145 append( sb, "", 0 );
146
147 append( sb, "systemProperties", 2 );
148 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
149 append( sb, "", 0 );
150
151 append( sb, "tagBase", 2 );
152 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
153 append( sb, "Expression: ${tagBase}", 3 );
154 append( sb, "", 0 );
155
156 append( sb, "username", 2 );
157 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
158 append( sb, "Expression: ${username}", 3 );
159 append( sb, "", 0 );
160
161 append( sb, "workingDirectory", 2 );
162 append( sb, "The working directory.", 3 );
163 append( sb, "Expression: ${workingDirectory}", 3 );
164 append( sb, "", 0 );
165 }
166 }
167
168 if ( goal == null || goal.length() <= 0 || "bootstrap".equals( goal ) )
169 {
170 append( sb, "scm:bootstrap", 0 );
171 append( sb, "Pull the project source from the configured scm and execute the configured goals.", 1 );
172 append( sb, "", 0 );
173 if ( detail )
174 {
175 append( sb, "Available parameters:", 1 );
176 append( sb, "", 0 );
177
178 append( sb, "basedir", 2 );
179 append( sb, "The base directory.", 3 );
180 append( sb, "Required: Yes", 3 );
181 append( sb, "Expression: ${basedir}", 3 );
182 append( sb, "", 0 );
183
184 append( sb, "checkoutDirectory (Default: ${project.build.directory}/checkout)", 2 );
185 append( sb, "The directory to checkout the sources to for the bootstrap and checkout goals.", 3 );
186 append( sb, "Expression: ${checkoutDirectory}", 3 );
187 append( sb, "", 0 );
188
189 append( sb, "connectionType (Default: connection)", 2 );
190 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
191 append( sb, "Expression: ${connectionType}", 3 );
192 append( sb, "", 0 );
193
194 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
195 append( sb, "The SCM connection URL.", 3 );
196 append( sb, "Expression: ${connectionUrl}", 3 );
197 append( sb, "", 0 );
198
199 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
200 append( sb, "The SCM connection URL for developers.", 3 );
201 append( sb, "Expression: ${connectionUrl}", 3 );
202 append( sb, "", 0 );
203
204 append( sb, "excludes", 2 );
205 append( sb, "Comma separated list of excludes file pattern.", 3 );
206 append( sb, "Expression: ${excludes}", 3 );
207 append( sb, "", 0 );
208
209 append( sb, "goals", 2 );
210 append( sb, "The goals to run on the clean checkout of a project for the bootstrap goal. If none are specified, then the default goal for the project is executed. Multiple goals should be comma separated.", 3 );
211 append( sb, "Expression: ${goals}", 3 );
212 append( sb, "", 0 );
213
214 append( sb, "goalsDirectory", 2 );
215 append( sb, "The subdirectory (under the project directory) in which to run the goals. The project directory is the same as the checkout directory in most cases, but for some SCMs, it is a subdirectory of the checkout directory.", 3 );
216 append( sb, "Expression: ${goalsDirectory}", 3 );
217 append( sb, "", 0 );
218
219 append( sb, "includes", 2 );
220 append( sb, "Comma separated list of includes file pattern.", 3 );
221 append( sb, "Expression: ${includes}", 3 );
222 append( sb, "", 0 );
223
224 append( sb, "passphrase", 2 );
225 append( sb, "The passphrase (used by java svn).", 3 );
226 append( sb, "Expression: ${passphrase}", 3 );
227 append( sb, "", 0 );
228
229 append( sb, "password", 2 );
230 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
231 append( sb, "Expression: ${password}", 3 );
232 append( sb, "", 0 );
233
234 append( sb, "privateKey", 2 );
235 append( sb, "The private key (used by java svn).", 3 );
236 append( sb, "Expression: ${privateKey}", 3 );
237 append( sb, "", 0 );
238
239 append( sb, "profiles", 2 );
240 append( sb, "A list of profiles to run with the goals. Multiple profiles must be comma separated with no spaces.", 3 );
241 append( sb, "Expression: ${profiles}", 3 );
242 append( sb, "", 0 );
243
244 append( sb, "providerImplementations", 2 );
245 append( sb, "List of provider implementations.", 3 );
246 append( sb, "", 0 );
247
248 append( sb, "pushChanges (Default: true)", 2 );
249 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
250 append( sb, "Expression: ${pushChanges}", 3 );
251 append( sb, "", 0 );
252
253 append( sb, "scmVersion", 2 );
254 append( sb, "The version (revision number/branch name/tag name).", 3 );
255 append( sb, "Expression: ${scmVersion}", 3 );
256 append( sb, "", 0 );
257
258 append( sb, "scmVersionType", 2 );
259 append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 );
260 append( sb, "Expression: ${scmVersionType}", 3 );
261 append( sb, "", 0 );
262
263 append( sb, "skipCheckoutIfExists (Default: false)", 2 );
264 append( sb, "Skip checkout if checkoutDirectory exists.", 3 );
265 append( sb, "Expression: ${skipCheckoutIfExists}", 3 );
266 append( sb, "", 0 );
267
268 append( sb, "systemProperties", 2 );
269 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
270 append( sb, "", 0 );
271
272 append( sb, "tagBase", 2 );
273 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
274 append( sb, "Expression: ${tagBase}", 3 );
275 append( sb, "", 0 );
276
277 append( sb, "useExport", 2 );
278 append( sb, "Use Export instead of checkout", 3 );
279 append( sb, "Expression: ${useExport}", 3 );
280 append( sb, "", 0 );
281
282 append( sb, "username", 2 );
283 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
284 append( sb, "Expression: ${username}", 3 );
285 append( sb, "", 0 );
286
287 append( sb, "workingDirectory", 2 );
288 append( sb, "The working directory.", 3 );
289 append( sb, "Expression: ${workingDirectory}", 3 );
290 append( sb, "", 0 );
291 }
292 }
293
294 if ( goal == null || goal.length() <= 0 || "branch".equals( goal ) )
295 {
296 append( sb, "scm:branch", 0 );
297 append( sb, "Branch the project.", 1 );
298 append( sb, "", 0 );
299 if ( detail )
300 {
301 append( sb, "Available parameters:", 1 );
302 append( sb, "", 0 );
303
304 append( sb, "basedir", 2 );
305 append( sb, "The base directory.", 3 );
306 append( sb, "Required: Yes", 3 );
307 append( sb, "Expression: ${basedir}", 3 );
308 append( sb, "", 0 );
309
310 append( sb, "branch", 2 );
311 append( sb, "The branch name.", 3 );
312 append( sb, "Required: Yes", 3 );
313 append( sb, "Expression: ${branch}", 3 );
314 append( sb, "", 0 );
315
316 append( sb, "connectionType (Default: connection)", 2 );
317 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
318 append( sb, "Expression: ${connectionType}", 3 );
319 append( sb, "", 0 );
320
321 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
322 append( sb, "The SCM connection URL.", 3 );
323 append( sb, "Expression: ${connectionUrl}", 3 );
324 append( sb, "", 0 );
325
326 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
327 append( sb, "The SCM connection URL for developers.", 3 );
328 append( sb, "Expression: ${connectionUrl}", 3 );
329 append( sb, "", 0 );
330
331 append( sb, "excludes", 2 );
332 append( sb, "Comma separated list of excludes file pattern.", 3 );
333 append( sb, "Expression: ${excludes}", 3 );
334 append( sb, "", 0 );
335
336 append( sb, "includes", 2 );
337 append( sb, "Comma separated list of includes file pattern.", 3 );
338 append( sb, "Expression: ${includes}", 3 );
339 append( sb, "", 0 );
340
341 append( sb, "message", 2 );
342 append( sb, "The message applied to the tag creation.", 3 );
343 append( sb, "Expression: ${message}", 3 );
344 append( sb, "", 0 );
345
346 append( sb, "passphrase", 2 );
347 append( sb, "The passphrase (used by java svn).", 3 );
348 append( sb, "Expression: ${passphrase}", 3 );
349 append( sb, "", 0 );
350
351 append( sb, "password", 2 );
352 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
353 append( sb, "Expression: ${password}", 3 );
354 append( sb, "", 0 );
355
356 append( sb, "privateKey", 2 );
357 append( sb, "The private key (used by java svn).", 3 );
358 append( sb, "Expression: ${privateKey}", 3 );
359 append( sb, "", 0 );
360
361 append( sb, "providerImplementations", 2 );
362 append( sb, "List of provider implementations.", 3 );
363 append( sb, "", 0 );
364
365 append( sb, "pushChanges (Default: true)", 2 );
366 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
367 append( sb, "Expression: ${pushChanges}", 3 );
368 append( sb, "", 0 );
369
370 append( sb, "remoteBranching (Default: true)", 2 );
371 append( sb, "currently only implemented with svn scm. Enable a workaround to prevent issue due to svn client > 1.5.0 (http://jira.codehaus.org/browse/SCM-406)", 3 );
372 append( sb, "Expression: ${remoteBranching}", 3 );
373 append( sb, "", 0 );
374
375 append( sb, "systemProperties", 2 );
376 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
377 append( sb, "", 0 );
378
379 append( sb, "tagBase", 2 );
380 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
381 append( sb, "Expression: ${tagBase}", 3 );
382 append( sb, "", 0 );
383
384 append( sb, "username", 2 );
385 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
386 append( sb, "Expression: ${username}", 3 );
387 append( sb, "", 0 );
388
389 append( sb, "workingDirectory", 2 );
390 append( sb, "The working directory.", 3 );
391 append( sb, "Expression: ${workingDirectory}", 3 );
392 append( sb, "", 0 );
393 }
394 }
395
396 if ( goal == null || goal.length() <= 0 || "changelog".equals( goal ) )
397 {
398 append( sb, "scm:changelog", 0 );
399 append( sb, "Dump changelog contents to console. It is mainly used to test maven-scm-api\'s changelog command.", 1 );
400 append( sb, "", 0 );
401 if ( detail )
402 {
403 append( sb, "Available parameters:", 1 );
404 append( sb, "", 0 );
405
406 append( sb, "basedir", 2 );
407 append( sb, "The base directory.", 3 );
408 append( sb, "Required: Yes", 3 );
409 append( sb, "Expression: ${basedir}", 3 );
410 append( sb, "", 0 );
411
412 append( sb, "connectionType (Default: connection)", 2 );
413 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
414 append( sb, "Expression: ${connectionType}", 3 );
415 append( sb, "", 0 );
416
417 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
418 append( sb, "The SCM connection URL.", 3 );
419 append( sb, "Expression: ${connectionUrl}", 3 );
420 append( sb, "", 0 );
421
422 append( sb, "dateFormat", 2 );
423 append( sb, "Date Format in changelog output of scm tool.", 3 );
424 append( sb, "Expression: ${dateFormat}", 3 );
425 append( sb, "", 0 );
426
427 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
428 append( sb, "The SCM connection URL for developers.", 3 );
429 append( sb, "Expression: ${connectionUrl}", 3 );
430 append( sb, "", 0 );
431
432 append( sb, "endDate", 2 );
433 append( sb, "End Date.", 3 );
434 append( sb, "Expression: ${endDate}", 3 );
435 append( sb, "", 0 );
436
437 append( sb, "endScmVersion", 2 );
438 append( sb, "End Scm Version.", 3 );
439 append( sb, "Expression: ${endScmVersion}", 3 );
440 append( sb, "", 0 );
441
442 append( sb, "endScmVersionType", 2 );
443 append( sb, "End Scm Version Type.", 3 );
444 append( sb, "Expression: ${endScmVersionType}", 3 );
445 append( sb, "", 0 );
446
447 append( sb, "excludes", 2 );
448 append( sb, "Comma separated list of excludes file pattern.", 3 );
449 append( sb, "Expression: ${excludes}", 3 );
450 append( sb, "", 0 );
451
452 append( sb, "includes", 2 );
453 append( sb, "Comma separated list of includes file pattern.", 3 );
454 append( sb, "Expression: ${includes}", 3 );
455 append( sb, "", 0 );
456
457 append( sb, "passphrase", 2 );
458 append( sb, "The passphrase (used by java svn).", 3 );
459 append( sb, "Expression: ${passphrase}", 3 );
460 append( sb, "", 0 );
461
462 append( sb, "password", 2 );
463 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
464 append( sb, "Expression: ${password}", 3 );
465 append( sb, "", 0 );
466
467 append( sb, "privateKey", 2 );
468 append( sb, "The private key (used by java svn).", 3 );
469 append( sb, "Expression: ${privateKey}", 3 );
470 append( sb, "", 0 );
471
472 append( sb, "providerImplementations", 2 );
473 append( sb, "List of provider implementations.", 3 );
474 append( sb, "", 0 );
475
476 append( sb, "pushChanges (Default: true)", 2 );
477 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
478 append( sb, "Expression: ${pushChanges}", 3 );
479 append( sb, "", 0 );
480
481 append( sb, "scmVersion", 2 );
482 append( sb, "The version (revision number/branch name/tag name).", 3 );
483 append( sb, "Expression: ${scmVersion}", 3 );
484 append( sb, "", 0 );
485
486 append( sb, "scmVersionType", 2 );
487 append( sb, "The version type (branch/tag) of scmVersion.", 3 );
488 append( sb, "Expression: ${scmVersionType}", 3 );
489 append( sb, "", 0 );
490
491 append( sb, "startDate", 2 );
492 append( sb, "Start Date.", 3 );
493 append( sb, "Expression: ${startDate}", 3 );
494 append( sb, "", 0 );
495
496 append( sb, "startScmVersion", 2 );
497 append( sb, "Start Scm Version.", 3 );
498 append( sb, "Expression: ${startScmVersion}", 3 );
499 append( sb, "", 0 );
500
501 append( sb, "startScmVersionType", 2 );
502 append( sb, "Start Scm Version Type.", 3 );
503 append( sb, "Expression: ${startScmVersionType}", 3 );
504 append( sb, "", 0 );
505
506 append( sb, "systemProperties", 2 );
507 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
508 append( sb, "", 0 );
509
510 append( sb, "tagBase", 2 );
511 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
512 append( sb, "Expression: ${tagBase}", 3 );
513 append( sb, "", 0 );
514
515 append( sb, "userDateFormat (Default: yyyy-MM-dd)", 2 );
516 append( sb, "Date format to use for the specified startDate and/or endDate.", 3 );
517 append( sb, "Expression: ${userDateFormat}", 3 );
518 append( sb, "", 0 );
519
520 append( sb, "username", 2 );
521 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
522 append( sb, "Expression: ${username}", 3 );
523 append( sb, "", 0 );
524
525 append( sb, "workingDirectory", 2 );
526 append( sb, "The working directory.", 3 );
527 append( sb, "Expression: ${workingDirectory}", 3 );
528 append( sb, "", 0 );
529 }
530 }
531
532 if ( goal == null || goal.length() <= 0 || "check-local-modification".equals( goal ) )
533 {
534 append( sb, "scm:check-local-modification", 0 );
535 append( sb, "This mojo will fail the build if there is any local modifications", 1 );
536 append( sb, "", 0 );
537 if ( detail )
538 {
539 append( sb, "Available parameters:", 1 );
540 append( sb, "", 0 );
541
542 append( sb, "basedir", 2 );
543 append( sb, "The base directory.", 3 );
544 append( sb, "Required: Yes", 3 );
545 append( sb, "Expression: ${basedir}", 3 );
546 append( sb, "", 0 );
547
548 append( sb, "connectionType (Default: connection)", 2 );
549 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
550 append( sb, "Expression: ${connectionType}", 3 );
551 append( sb, "", 0 );
552
553 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
554 append( sb, "The SCM connection URL.", 3 );
555 append( sb, "Expression: ${connectionUrl}", 3 );
556 append( sb, "", 0 );
557
558 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
559 append( sb, "The SCM connection URL for developers.", 3 );
560 append( sb, "Expression: ${connectionUrl}", 3 );
561 append( sb, "", 0 );
562
563 append( sb, "errorMessage (Default: The build will stop as there is local modifications)", 2 );
564 append( sb, "Custom error message", 3 );
565 append( sb, "Expression: ${scm.checkLocalModification.errorMessage}", 3 );
566 append( sb, "", 0 );
567
568 append( sb, "excludes", 2 );
569 append( sb, "Comma separated list of excludes file pattern.", 3 );
570 append( sb, "Expression: ${excludes}", 3 );
571 append( sb, "", 0 );
572
573 append( sb, "includes", 2 );
574 append( sb, "Comma separated list of includes file pattern.", 3 );
575 append( sb, "Expression: ${includes}", 3 );
576 append( sb, "", 0 );
577
578 append( sb, "passphrase", 2 );
579 append( sb, "The passphrase (used by java svn).", 3 );
580 append( sb, "Expression: ${passphrase}", 3 );
581 append( sb, "", 0 );
582
583 append( sb, "password", 2 );
584 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
585 append( sb, "Expression: ${password}", 3 );
586 append( sb, "", 0 );
587
588 append( sb, "privateKey", 2 );
589 append( sb, "The private key (used by java svn).", 3 );
590 append( sb, "Expression: ${privateKey}", 3 );
591 append( sb, "", 0 );
592
593 append( sb, "providerImplementations", 2 );
594 append( sb, "List of provider implementations.", 3 );
595 append( sb, "", 0 );
596
597 append( sb, "pushChanges (Default: true)", 2 );
598 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
599 append( sb, "Expression: ${pushChanges}", 3 );
600 append( sb, "", 0 );
601
602 append( sb, "skip (Default: false)", 2 );
603 append( sb, "Custom error message", 3 );
604 append( sb, "Expression: ${scm.checkLocalModification.skip}", 3 );
605 append( sb, "", 0 );
606
607 append( sb, "systemProperties", 2 );
608 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
609 append( sb, "", 0 );
610
611 append( sb, "tagBase", 2 );
612 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
613 append( sb, "Expression: ${tagBase}", 3 );
614 append( sb, "", 0 );
615
616 append( sb, "username", 2 );
617 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
618 append( sb, "Expression: ${username}", 3 );
619 append( sb, "", 0 );
620
621 append( sb, "workingDirectory", 2 );
622 append( sb, "The working directory.", 3 );
623 append( sb, "Expression: ${workingDirectory}", 3 );
624 append( sb, "", 0 );
625 }
626 }
627
628 if ( goal == null || goal.length() <= 0 || "checkin".equals( goal ) )
629 {
630 append( sb, "scm:checkin", 0 );
631 append( sb, "Commit changes to the configured scm url.", 1 );
632 append( sb, "", 0 );
633 if ( detail )
634 {
635 append( sb, "Available parameters:", 1 );
636 append( sb, "", 0 );
637
638 append( sb, "basedir", 2 );
639 append( sb, "The base directory.", 3 );
640 append( sb, "Required: Yes", 3 );
641 append( sb, "Expression: ${basedir}", 3 );
642 append( sb, "", 0 );
643
644 append( sb, "connectionType (Default: developerConnection)", 2 );
645 append( sb, "The configured scm url to use.", 3 );
646 append( sb, "Expression: ${connectionType}", 3 );
647 append( sb, "", 0 );
648
649 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
650 append( sb, "The SCM connection URL.", 3 );
651 append( sb, "Expression: ${connectionUrl}", 3 );
652 append( sb, "", 0 );
653
654 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
655 append( sb, "The SCM connection URL for developers.", 3 );
656 append( sb, "Expression: ${connectionUrl}", 3 );
657 append( sb, "", 0 );
658
659 append( sb, "excludes", 2 );
660 append( sb, "Comma separated list of excludes file pattern.", 3 );
661 append( sb, "Expression: ${excludes}", 3 );
662 append( sb, "", 0 );
663
664 append( sb, "includes", 2 );
665 append( sb, "Comma separated list of includes file pattern.", 3 );
666 append( sb, "Expression: ${includes}", 3 );
667 append( sb, "", 0 );
668
669 append( sb, "message", 2 );
670 append( sb, "Commit log.", 3 );
671 append( sb, "Expression: ${message}", 3 );
672 append( sb, "", 0 );
673
674 append( sb, "passphrase", 2 );
675 append( sb, "The passphrase (used by java svn).", 3 );
676 append( sb, "Expression: ${passphrase}", 3 );
677 append( sb, "", 0 );
678
679 append( sb, "password", 2 );
680 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
681 append( sb, "Expression: ${password}", 3 );
682 append( sb, "", 0 );
683
684 append( sb, "privateKey", 2 );
685 append( sb, "The private key (used by java svn).", 3 );
686 append( sb, "Expression: ${privateKey}", 3 );
687 append( sb, "", 0 );
688
689 append( sb, "providerImplementations", 2 );
690 append( sb, "List of provider implementations.", 3 );
691 append( sb, "", 0 );
692
693 append( sb, "pushChanges (Default: true)", 2 );
694 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
695 append( sb, "Expression: ${pushChanges}", 3 );
696 append( sb, "", 0 );
697
698 append( sb, "scmVersion", 2 );
699 append( sb, "The version (revision number/branch name/tag name).", 3 );
700 append( sb, "Expression: ${scmVersion}", 3 );
701 append( sb, "", 0 );
702
703 append( sb, "scmVersionType", 2 );
704 append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 );
705 append( sb, "Expression: ${scmVersionType}", 3 );
706 append( sb, "", 0 );
707
708 append( sb, "systemProperties", 2 );
709 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
710 append( sb, "", 0 );
711
712 append( sb, "tagBase", 2 );
713 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
714 append( sb, "Expression: ${tagBase}", 3 );
715 append( sb, "", 0 );
716
717 append( sb, "username", 2 );
718 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
719 append( sb, "Expression: ${username}", 3 );
720 append( sb, "", 0 );
721
722 append( sb, "workingDirectory", 2 );
723 append( sb, "The working directory.", 3 );
724 append( sb, "Expression: ${workingDirectory}", 3 );
725 append( sb, "", 0 );
726 }
727 }
728
729 if ( goal == null || goal.length() <= 0 || "checkout".equals( goal ) )
730 {
731 append( sb, "scm:checkout", 0 );
732 append( sb, "Get a fresh copy of the latest source from the configured scm url.", 1 );
733 append( sb, "", 0 );
734 if ( detail )
735 {
736 append( sb, "Available parameters:", 1 );
737 append( sb, "", 0 );
738
739 append( sb, "basedir", 2 );
740 append( sb, "The base directory.", 3 );
741 append( sb, "Required: Yes", 3 );
742 append( sb, "Expression: ${basedir}", 3 );
743 append( sb, "", 0 );
744
745 append( sb, "checkoutDirectory (Default: ${project.build.directory}/checkout)", 2 );
746 append( sb, "The directory to checkout the sources to for the bootstrap and checkout goals.", 3 );
747 append( sb, "Expression: ${checkoutDirectory}", 3 );
748 append( sb, "", 0 );
749
750 append( sb, "connectionType (Default: connection)", 2 );
751 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
752 append( sb, "Expression: ${connectionType}", 3 );
753 append( sb, "", 0 );
754
755 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
756 append( sb, "The SCM connection URL.", 3 );
757 append( sb, "Expression: ${connectionUrl}", 3 );
758 append( sb, "", 0 );
759
760 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
761 append( sb, "The SCM connection URL for developers.", 3 );
762 append( sb, "Expression: ${connectionUrl}", 3 );
763 append( sb, "", 0 );
764
765 append( sb, "excludes", 2 );
766 append( sb, "Comma separated list of excludes file pattern.", 3 );
767 append( sb, "Expression: ${excludes}", 3 );
768 append( sb, "", 0 );
769
770 append( sb, "includes", 2 );
771 append( sb, "Comma separated list of includes file pattern.", 3 );
772 append( sb, "Expression: ${includes}", 3 );
773 append( sb, "", 0 );
774
775 append( sb, "passphrase", 2 );
776 append( sb, "The passphrase (used by java svn).", 3 );
777 append( sb, "Expression: ${passphrase}", 3 );
778 append( sb, "", 0 );
779
780 append( sb, "password", 2 );
781 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
782 append( sb, "Expression: ${password}", 3 );
783 append( sb, "", 0 );
784
785 append( sb, "privateKey", 2 );
786 append( sb, "The private key (used by java svn).", 3 );
787 append( sb, "Expression: ${privateKey}", 3 );
788 append( sb, "", 0 );
789
790 append( sb, "providerImplementations", 2 );
791 append( sb, "List of provider implementations.", 3 );
792 append( sb, "", 0 );
793
794 append( sb, "pushChanges (Default: true)", 2 );
795 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
796 append( sb, "Expression: ${pushChanges}", 3 );
797 append( sb, "", 0 );
798
799 append( sb, "scmVersion", 2 );
800 append( sb, "The version (revision number/branch name/tag name).", 3 );
801 append( sb, "Expression: ${scmVersion}", 3 );
802 append( sb, "", 0 );
803
804 append( sb, "scmVersionType", 2 );
805 append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 );
806 append( sb, "Expression: ${scmVersionType}", 3 );
807 append( sb, "", 0 );
808
809 append( sb, "skipCheckoutIfExists (Default: false)", 2 );
810 append( sb, "Skip checkout if checkoutDirectory exists.", 3 );
811 append( sb, "Expression: ${skipCheckoutIfExists}", 3 );
812 append( sb, "", 0 );
813
814 append( sb, "systemProperties", 2 );
815 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
816 append( sb, "", 0 );
817
818 append( sb, "tagBase", 2 );
819 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
820 append( sb, "Expression: ${tagBase}", 3 );
821 append( sb, "", 0 );
822
823 append( sb, "useExport", 2 );
824 append( sb, "Use Export instead of checkout", 3 );
825 append( sb, "Expression: ${useExport}", 3 );
826 append( sb, "", 0 );
827
828 append( sb, "username", 2 );
829 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
830 append( sb, "Expression: ${username}", 3 );
831 append( sb, "", 0 );
832
833 append( sb, "workingDirectory", 2 );
834 append( sb, "The working directory.", 3 );
835 append( sb, "Expression: ${workingDirectory}", 3 );
836 append( sb, "", 0 );
837 }
838 }
839
840 if ( goal == null || goal.length() <= 0 || "diff".equals( goal ) )
841 {
842 append( sb, "scm:diff", 0 );
843 append( sb, "Display the difference of the working copy with the latest copy in the configured scm url.", 1 );
844 append( sb, "", 0 );
845 if ( detail )
846 {
847 append( sb, "Available parameters:", 1 );
848 append( sb, "", 0 );
849
850 append( sb, "basedir", 2 );
851 append( sb, "The base directory.", 3 );
852 append( sb, "Required: Yes", 3 );
853 append( sb, "Expression: ${basedir}", 3 );
854 append( sb, "", 0 );
855
856 append( sb, "connectionType (Default: connection)", 2 );
857 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
858 append( sb, "Expression: ${connectionType}", 3 );
859 append( sb, "", 0 );
860
861 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
862 append( sb, "The SCM connection URL.", 3 );
863 append( sb, "Expression: ${connectionUrl}", 3 );
864 append( sb, "", 0 );
865
866 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
867 append( sb, "The SCM connection URL for developers.", 3 );
868 append( sb, "Expression: ${connectionUrl}", 3 );
869 append( sb, "", 0 );
870
871 append( sb, "endScmVersion", 2 );
872 append( sb, "The version (revision number/branch name/tag name).", 3 );
873 append( sb, "Expression: ${endScmVersion}", 3 );
874 append( sb, "", 0 );
875
876 append( sb, "endScmVersionType", 2 );
877 append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 );
878 append( sb, "Expression: ${endScmVersionType}", 3 );
879 append( sb, "", 0 );
880
881 append( sb, "excludes", 2 );
882 append( sb, "Comma separated list of excludes file pattern.", 3 );
883 append( sb, "Expression: ${excludes}", 3 );
884 append( sb, "", 0 );
885
886 append( sb, "includes", 2 );
887 append( sb, "Comma separated list of includes file pattern.", 3 );
888 append( sb, "Expression: ${includes}", 3 );
889 append( sb, "", 0 );
890
891 append( sb, "outputFile (Default: ${project.artifactId}.diff)", 2 );
892 append( sb, "Output file name.", 3 );
893 append( sb, "Expression: ${outputFile}", 3 );
894 append( sb, "", 0 );
895
896 append( sb, "passphrase", 2 );
897 append( sb, "The passphrase (used by java svn).", 3 );
898 append( sb, "Expression: ${passphrase}", 3 );
899 append( sb, "", 0 );
900
901 append( sb, "password", 2 );
902 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
903 append( sb, "Expression: ${password}", 3 );
904 append( sb, "", 0 );
905
906 append( sb, "privateKey", 2 );
907 append( sb, "The private key (used by java svn).", 3 );
908 append( sb, "Expression: ${privateKey}", 3 );
909 append( sb, "", 0 );
910
911 append( sb, "providerImplementations", 2 );
912 append( sb, "List of provider implementations.", 3 );
913 append( sb, "", 0 );
914
915 append( sb, "pushChanges (Default: true)", 2 );
916 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
917 append( sb, "Expression: ${pushChanges}", 3 );
918 append( sb, "", 0 );
919
920 append( sb, "startScmVersion", 2 );
921 append( sb, "The version (revision number/branch name/tag name).", 3 );
922 append( sb, "Expression: ${startScmVersion}", 3 );
923 append( sb, "", 0 );
924
925 append( sb, "startScmVersionType", 2 );
926 append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 );
927 append( sb, "Expression: ${startScmVersionType}", 3 );
928 append( sb, "", 0 );
929
930 append( sb, "systemProperties", 2 );
931 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
932 append( sb, "", 0 );
933
934 append( sb, "tagBase", 2 );
935 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
936 append( sb, "Expression: ${tagBase}", 3 );
937 append( sb, "", 0 );
938
939 append( sb, "username", 2 );
940 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
941 append( sb, "Expression: ${username}", 3 );
942 append( sb, "", 0 );
943
944 append( sb, "workingDirectory", 2 );
945 append( sb, "The working directory.", 3 );
946 append( sb, "Expression: ${workingDirectory}", 3 );
947 append( sb, "", 0 );
948 }
949 }
950
951 if ( goal == null || goal.length() <= 0 || "edit".equals( goal ) )
952 {
953 append( sb, "scm:edit", 0 );
954 append( sb, "Edit/lock a set of files.", 1 );
955 append( sb, "", 0 );
956 if ( detail )
957 {
958 append( sb, "Available parameters:", 1 );
959 append( sb, "", 0 );
960
961 append( sb, "basedir", 2 );
962 append( sb, "The base directory.", 3 );
963 append( sb, "Required: Yes", 3 );
964 append( sb, "Expression: ${basedir}", 3 );
965 append( sb, "", 0 );
966
967 append( sb, "connectionType (Default: connection)", 2 );
968 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
969 append( sb, "Expression: ${connectionType}", 3 );
970 append( sb, "", 0 );
971
972 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
973 append( sb, "The SCM connection URL.", 3 );
974 append( sb, "Expression: ${connectionUrl}", 3 );
975 append( sb, "", 0 );
976
977 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
978 append( sb, "The SCM connection URL for developers.", 3 );
979 append( sb, "Expression: ${connectionUrl}", 3 );
980 append( sb, "", 0 );
981
982 append( sb, "excludes", 2 );
983 append( sb, "Comma separated list of excludes file pattern.", 3 );
984 append( sb, "Expression: ${excludes}", 3 );
985 append( sb, "", 0 );
986
987 append( sb, "includes", 2 );
988 append( sb, "Comma separated list of includes file pattern.", 3 );
989 append( sb, "Expression: ${includes}", 3 );
990 append( sb, "", 0 );
991
992 append( sb, "passphrase", 2 );
993 append( sb, "The passphrase (used by java svn).", 3 );
994 append( sb, "Expression: ${passphrase}", 3 );
995 append( sb, "", 0 );
996
997 append( sb, "password", 2 );
998 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
999 append( sb, "Expression: ${password}", 3 );
1000 append( sb, "", 0 );
1001
1002 append( sb, "privateKey", 2 );
1003 append( sb, "The private key (used by java svn).", 3 );
1004 append( sb, "Expression: ${privateKey}", 3 );
1005 append( sb, "", 0 );
1006
1007 append( sb, "providerImplementations", 2 );
1008 append( sb, "List of provider implementations.", 3 );
1009 append( sb, "", 0 );
1010
1011 append( sb, "pushChanges (Default: true)", 2 );
1012 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
1013 append( sb, "Expression: ${pushChanges}", 3 );
1014 append( sb, "", 0 );
1015
1016 append( sb, "systemProperties", 2 );
1017 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
1018 append( sb, "", 0 );
1019
1020 append( sb, "tagBase", 2 );
1021 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
1022 append( sb, "Expression: ${tagBase}", 3 );
1023 append( sb, "", 0 );
1024
1025 append( sb, "username", 2 );
1026 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
1027 append( sb, "Expression: ${username}", 3 );
1028 append( sb, "", 0 );
1029
1030 append( sb, "workingDirectory", 2 );
1031 append( sb, "The working directory.", 3 );
1032 append( sb, "Expression: ${workingDirectory}", 3 );
1033 append( sb, "", 0 );
1034 }
1035 }
1036
1037 if ( goal == null || goal.length() <= 0 || "export".equals( goal ) )
1038 {
1039 append( sb, "scm:export", 0 );
1040 append( sb, "Get a fresh exported copy of the latest source from the configured scm url.", 1 );
1041 append( sb, "", 0 );
1042 if ( detail )
1043 {
1044 append( sb, "Available parameters:", 1 );
1045 append( sb, "", 0 );
1046
1047 append( sb, "basedir", 2 );
1048 append( sb, "The base directory.", 3 );
1049 append( sb, "Required: Yes", 3 );
1050 append( sb, "Expression: ${basedir}", 3 );
1051 append( sb, "", 0 );
1052
1053 append( sb, "connectionType (Default: connection)", 2 );
1054 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
1055 append( sb, "Expression: ${connectionType}", 3 );
1056 append( sb, "", 0 );
1057
1058 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
1059 append( sb, "The SCM connection URL.", 3 );
1060 append( sb, "Expression: ${connectionUrl}", 3 );
1061 append( sb, "", 0 );
1062
1063 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
1064 append( sb, "The SCM connection URL for developers.", 3 );
1065 append( sb, "Expression: ${connectionUrl}", 3 );
1066 append( sb, "", 0 );
1067
1068 append( sb, "excludes", 2 );
1069 append( sb, "Comma separated list of excludes file pattern.", 3 );
1070 append( sb, "Expression: ${excludes}", 3 );
1071 append( sb, "", 0 );
1072
1073 append( sb, "exportDirectory (Default: ${project.build.directory}/export)", 2 );
1074 append( sb, "The directory to export the sources to.", 3 );
1075 append( sb, "Required: Yes", 3 );
1076 append( sb, "Expression: ${exportDirectory}", 3 );
1077 append( sb, "", 0 );
1078
1079 append( sb, "includes", 2 );
1080 append( sb, "Comma separated list of includes file pattern.", 3 );
1081 append( sb, "Expression: ${includes}", 3 );
1082 append( sb, "", 0 );
1083
1084 append( sb, "passphrase", 2 );
1085 append( sb, "The passphrase (used by java svn).", 3 );
1086 append( sb, "Expression: ${passphrase}", 3 );
1087 append( sb, "", 0 );
1088
1089 append( sb, "password", 2 );
1090 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
1091 append( sb, "Expression: ${password}", 3 );
1092 append( sb, "", 0 );
1093
1094 append( sb, "privateKey", 2 );
1095 append( sb, "The private key (used by java svn).", 3 );
1096 append( sb, "Expression: ${privateKey}", 3 );
1097 append( sb, "", 0 );
1098
1099 append( sb, "providerImplementations", 2 );
1100 append( sb, "List of provider implementations.", 3 );
1101 append( sb, "", 0 );
1102
1103 append( sb, "pushChanges (Default: true)", 2 );
1104 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
1105 append( sb, "Expression: ${pushChanges}", 3 );
1106 append( sb, "", 0 );
1107
1108 append( sb, "scmVersion", 2 );
1109 append( sb, "The version (revision number/branch name/tag name).", 3 );
1110 append( sb, "Expression: ${scmVersion}", 3 );
1111 append( sb, "", 0 );
1112
1113 append( sb, "scmVersionType", 2 );
1114 append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 );
1115 append( sb, "Expression: ${scmVersionType}", 3 );
1116 append( sb, "", 0 );
1117
1118 append( sb, "skipExportIfExists (Default: false)", 2 );
1119 append( sb, "Skip export if exportDirectory exists.", 3 );
1120 append( sb, "Expression: ${skipExportIfExists}", 3 );
1121 append( sb, "", 0 );
1122
1123 append( sb, "systemProperties", 2 );
1124 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
1125 append( sb, "", 0 );
1126
1127 append( sb, "tagBase", 2 );
1128 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
1129 append( sb, "Expression: ${tagBase}", 3 );
1130 append( sb, "", 0 );
1131
1132 append( sb, "username", 2 );
1133 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
1134 append( sb, "Expression: ${username}", 3 );
1135 append( sb, "", 0 );
1136
1137 append( sb, "workingDirectory", 2 );
1138 append( sb, "The working directory.", 3 );
1139 append( sb, "Expression: ${workingDirectory}", 3 );
1140 append( sb, "", 0 );
1141 }
1142 }
1143
1144 if ( goal == null || goal.length() <= 0 || "help".equals( goal ) )
1145 {
1146 append( sb, "scm:help", 0 );
1147 append( sb, "Display help information on maven-scm-plugin.\nCall\n\u00a0\u00a0mvn\u00a0scm:help\u00a0-Ddetail=true\u00a0-Dgoal=<goal-name>\nto display parameter details.", 1 );
1148 append( sb, "", 0 );
1149 if ( detail )
1150 {
1151 append( sb, "Available parameters:", 1 );
1152 append( sb, "", 0 );
1153
1154 append( sb, "detail (Default: false)", 2 );
1155 append( sb, "If true, display all settable properties for each goal.", 3 );
1156 append( sb, "Expression: ${detail}", 3 );
1157 append( sb, "", 0 );
1158
1159 append( sb, "goal", 2 );
1160 append( sb, "The name of the goal for which to show help. If unspecified, all goals will be displayed.", 3 );
1161 append( sb, "Expression: ${goal}", 3 );
1162 append( sb, "", 0 );
1163
1164 append( sb, "indentSize (Default: 2)", 2 );
1165 append( sb, "The number of spaces per indentation level, should be positive.", 3 );
1166 append( sb, "Expression: ${indentSize}", 3 );
1167 append( sb, "", 0 );
1168
1169 append( sb, "lineLength (Default: 80)", 2 );
1170 append( sb, "The maximum length of a display line, should be positive.", 3 );
1171 append( sb, "Expression: ${lineLength}", 3 );
1172 append( sb, "", 0 );
1173 }
1174 }
1175
1176 if ( goal == null || goal.length() <= 0 || "list".equals( goal ) )
1177 {
1178 append( sb, "scm:list", 0 );
1179 append( sb, "Get the list of project files.", 1 );
1180 append( sb, "", 0 );
1181 if ( detail )
1182 {
1183 append( sb, "Available parameters:", 1 );
1184 append( sb, "", 0 );
1185
1186 append( sb, "basedir", 2 );
1187 append( sb, "The base directory.", 3 );
1188 append( sb, "Required: Yes", 3 );
1189 append( sb, "Expression: ${basedir}", 3 );
1190 append( sb, "", 0 );
1191
1192 append( sb, "connectionType (Default: connection)", 2 );
1193 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
1194 append( sb, "Expression: ${connectionType}", 3 );
1195 append( sb, "", 0 );
1196
1197 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
1198 append( sb, "The SCM connection URL.", 3 );
1199 append( sb, "Expression: ${connectionUrl}", 3 );
1200 append( sb, "", 0 );
1201
1202 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
1203 append( sb, "The SCM connection URL for developers.", 3 );
1204 append( sb, "Expression: ${connectionUrl}", 3 );
1205 append( sb, "", 0 );
1206
1207 append( sb, "excludes", 2 );
1208 append( sb, "Comma separated list of excludes file pattern.", 3 );
1209 append( sb, "Expression: ${excludes}", 3 );
1210 append( sb, "", 0 );
1211
1212 append( sb, "includes", 2 );
1213 append( sb, "Comma separated list of includes file pattern.", 3 );
1214 append( sb, "Expression: ${includes}", 3 );
1215 append( sb, "", 0 );
1216
1217 append( sb, "passphrase", 2 );
1218 append( sb, "The passphrase (used by java svn).", 3 );
1219 append( sb, "Expression: ${passphrase}", 3 );
1220 append( sb, "", 0 );
1221
1222 append( sb, "password", 2 );
1223 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
1224 append( sb, "Expression: ${password}", 3 );
1225 append( sb, "", 0 );
1226
1227 append( sb, "privateKey", 2 );
1228 append( sb, "The private key (used by java svn).", 3 );
1229 append( sb, "Expression: ${privateKey}", 3 );
1230 append( sb, "", 0 );
1231
1232 append( sb, "providerImplementations", 2 );
1233 append( sb, "List of provider implementations.", 3 );
1234 append( sb, "", 0 );
1235
1236 append( sb, "pushChanges (Default: true)", 2 );
1237 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
1238 append( sb, "Expression: ${pushChanges}", 3 );
1239 append( sb, "", 0 );
1240
1241 append( sb, "recursive (Default: true)", 2 );
1242 append( sb, "Use recursive mode.", 3 );
1243 append( sb, "Expression: ${recursive}", 3 );
1244 append( sb, "", 0 );
1245
1246 append( sb, "scmVersion", 2 );
1247 append( sb, "The version (revision number/branch name/tag name).", 3 );
1248 append( sb, "Expression: ${scmVersion}", 3 );
1249 append( sb, "", 0 );
1250
1251 append( sb, "scmVersionType", 2 );
1252 append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 );
1253 append( sb, "Expression: ${scmVersionType}", 3 );
1254 append( sb, "", 0 );
1255
1256 append( sb, "systemProperties", 2 );
1257 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
1258 append( sb, "", 0 );
1259
1260 append( sb, "tagBase", 2 );
1261 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
1262 append( sb, "Expression: ${tagBase}", 3 );
1263 append( sb, "", 0 );
1264
1265 append( sb, "username", 2 );
1266 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
1267 append( sb, "Expression: ${username}", 3 );
1268 append( sb, "", 0 );
1269
1270 append( sb, "workingDirectory", 2 );
1271 append( sb, "The working directory.", 3 );
1272 append( sb, "Expression: ${workingDirectory}", 3 );
1273 append( sb, "", 0 );
1274 }
1275 }
1276
1277 if ( goal == null || goal.length() <= 0 || "remove".equals( goal ) )
1278 {
1279 append( sb, "scm:remove", 0 );
1280 append( sb, "Mark a set of files for deletion.", 1 );
1281 append( sb, "", 0 );
1282 if ( detail )
1283 {
1284 append( sb, "Available parameters:", 1 );
1285 append( sb, "", 0 );
1286
1287 append( sb, "basedir", 2 );
1288 append( sb, "The base directory.", 3 );
1289 append( sb, "Required: Yes", 3 );
1290 append( sb, "Expression: ${basedir}", 3 );
1291 append( sb, "", 0 );
1292
1293 append( sb, "connectionType (Default: connection)", 2 );
1294 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
1295 append( sb, "Expression: ${connectionType}", 3 );
1296 append( sb, "", 0 );
1297
1298 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
1299 append( sb, "The SCM connection URL.", 3 );
1300 append( sb, "Expression: ${connectionUrl}", 3 );
1301 append( sb, "", 0 );
1302
1303 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
1304 append( sb, "The SCM connection URL for developers.", 3 );
1305 append( sb, "Expression: ${connectionUrl}", 3 );
1306 append( sb, "", 0 );
1307
1308 append( sb, "excludes", 2 );
1309 append( sb, "Comma separated list of excludes file pattern.", 3 );
1310 append( sb, "Expression: ${excludes}", 3 );
1311 append( sb, "", 0 );
1312
1313 append( sb, "includes", 2 );
1314 append( sb, "Comma separated list of includes file pattern.", 3 );
1315 append( sb, "Expression: ${includes}", 3 );
1316 append( sb, "", 0 );
1317
1318 append( sb, "message", 2 );
1319 append( sb, "The commit message.", 3 );
1320 append( sb, "Expression: ${message}", 3 );
1321 append( sb, "", 0 );
1322
1323 append( sb, "passphrase", 2 );
1324 append( sb, "The passphrase (used by java svn).", 3 );
1325 append( sb, "Expression: ${passphrase}", 3 );
1326 append( sb, "", 0 );
1327
1328 append( sb, "password", 2 );
1329 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
1330 append( sb, "Expression: ${password}", 3 );
1331 append( sb, "", 0 );
1332
1333 append( sb, "privateKey", 2 );
1334 append( sb, "The private key (used by java svn).", 3 );
1335 append( sb, "Expression: ${privateKey}", 3 );
1336 append( sb, "", 0 );
1337
1338 append( sb, "providerImplementations", 2 );
1339 append( sb, "List of provider implementations.", 3 );
1340 append( sb, "", 0 );
1341
1342 append( sb, "pushChanges (Default: true)", 2 );
1343 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
1344 append( sb, "Expression: ${pushChanges}", 3 );
1345 append( sb, "", 0 );
1346
1347 append( sb, "systemProperties", 2 );
1348 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
1349 append( sb, "", 0 );
1350
1351 append( sb, "tagBase", 2 );
1352 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
1353 append( sb, "Expression: ${tagBase}", 3 );
1354 append( sb, "", 0 );
1355
1356 append( sb, "username", 2 );
1357 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
1358 append( sb, "Expression: ${username}", 3 );
1359 append( sb, "", 0 );
1360
1361 append( sb, "workingDirectory", 2 );
1362 append( sb, "The working directory.", 3 );
1363 append( sb, "Expression: ${workingDirectory}", 3 );
1364 append( sb, "", 0 );
1365 }
1366 }
1367
1368 if ( goal == null || goal.length() <= 0 || "status".equals( goal ) )
1369 {
1370 append( sb, "scm:status", 0 );
1371 append( sb, "Display the modification status of the files in the configured scm url.", 1 );
1372 append( sb, "", 0 );
1373 if ( detail )
1374 {
1375 append( sb, "Available parameters:", 1 );
1376 append( sb, "", 0 );
1377
1378 append( sb, "basedir", 2 );
1379 append( sb, "The base directory.", 3 );
1380 append( sb, "Required: Yes", 3 );
1381 append( sb, "Expression: ${basedir}", 3 );
1382 append( sb, "", 0 );
1383
1384 append( sb, "connectionType (Default: connection)", 2 );
1385 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
1386 append( sb, "Expression: ${connectionType}", 3 );
1387 append( sb, "", 0 );
1388
1389 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
1390 append( sb, "The SCM connection URL.", 3 );
1391 append( sb, "Expression: ${connectionUrl}", 3 );
1392 append( sb, "", 0 );
1393
1394 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
1395 append( sb, "The SCM connection URL for developers.", 3 );
1396 append( sb, "Expression: ${connectionUrl}", 3 );
1397 append( sb, "", 0 );
1398
1399 append( sb, "excludes", 2 );
1400 append( sb, "Comma separated list of excludes file pattern.", 3 );
1401 append( sb, "Expression: ${excludes}", 3 );
1402 append( sb, "", 0 );
1403
1404 append( sb, "includes", 2 );
1405 append( sb, "Comma separated list of includes file pattern.", 3 );
1406 append( sb, "Expression: ${includes}", 3 );
1407 append( sb, "", 0 );
1408
1409 append( sb, "passphrase", 2 );
1410 append( sb, "The passphrase (used by java svn).", 3 );
1411 append( sb, "Expression: ${passphrase}", 3 );
1412 append( sb, "", 0 );
1413
1414 append( sb, "password", 2 );
1415 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
1416 append( sb, "Expression: ${password}", 3 );
1417 append( sb, "", 0 );
1418
1419 append( sb, "privateKey", 2 );
1420 append( sb, "The private key (used by java svn).", 3 );
1421 append( sb, "Expression: ${privateKey}", 3 );
1422 append( sb, "", 0 );
1423
1424 append( sb, "providerImplementations", 2 );
1425 append( sb, "List of provider implementations.", 3 );
1426 append( sb, "", 0 );
1427
1428 append( sb, "pushChanges (Default: true)", 2 );
1429 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
1430 append( sb, "Expression: ${pushChanges}", 3 );
1431 append( sb, "", 0 );
1432
1433 append( sb, "systemProperties", 2 );
1434 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
1435 append( sb, "", 0 );
1436
1437 append( sb, "tagBase", 2 );
1438 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
1439 append( sb, "Expression: ${tagBase}", 3 );
1440 append( sb, "", 0 );
1441
1442 append( sb, "username", 2 );
1443 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
1444 append( sb, "Expression: ${username}", 3 );
1445 append( sb, "", 0 );
1446
1447 append( sb, "workingDirectory", 2 );
1448 append( sb, "The working directory.", 3 );
1449 append( sb, "Expression: ${workingDirectory}", 3 );
1450 append( sb, "", 0 );
1451 }
1452 }
1453
1454 if ( goal == null || goal.length() <= 0 || "tag".equals( goal ) )
1455 {
1456 append( sb, "scm:tag", 0 );
1457 append( sb, "Tag the project.", 1 );
1458 append( sb, "", 0 );
1459 if ( detail )
1460 {
1461 append( sb, "Available parameters:", 1 );
1462 append( sb, "", 0 );
1463
1464 append( sb, "addTimestamp (Default: false)", 2 );
1465 append( sb, "Use timestamp tagging.", 3 );
1466 append( sb, "Expression: ${addTimestamp}", 3 );
1467 append( sb, "", 0 );
1468
1469 append( sb, "basedir", 2 );
1470 append( sb, "The base directory.", 3 );
1471 append( sb, "Required: Yes", 3 );
1472 append( sb, "Expression: ${basedir}", 3 );
1473 append( sb, "", 0 );
1474
1475 append( sb, "connectionType (Default: connection)", 2 );
1476 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
1477 append( sb, "Expression: ${connectionType}", 3 );
1478 append( sb, "", 0 );
1479
1480 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
1481 append( sb, "The SCM connection URL.", 3 );
1482 append( sb, "Expression: ${connectionUrl}", 3 );
1483 append( sb, "", 0 );
1484
1485 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
1486 append( sb, "The SCM connection URL for developers.", 3 );
1487 append( sb, "Expression: ${connectionUrl}", 3 );
1488 append( sb, "", 0 );
1489
1490 append( sb, "excludes", 2 );
1491 append( sb, "Comma separated list of excludes file pattern.", 3 );
1492 append( sb, "Expression: ${excludes}", 3 );
1493 append( sb, "", 0 );
1494
1495 append( sb, "includes", 2 );
1496 append( sb, "Comma separated list of includes file pattern.", 3 );
1497 append( sb, "Expression: ${includes}", 3 );
1498 append( sb, "", 0 );
1499
1500 append( sb, "message", 2 );
1501 append( sb, "The message applied to the tag creation.", 3 );
1502 append( sb, "Expression: ${message}", 3 );
1503 append( sb, "", 0 );
1504
1505 append( sb, "passphrase", 2 );
1506 append( sb, "The passphrase (used by java svn).", 3 );
1507 append( sb, "Expression: ${passphrase}", 3 );
1508 append( sb, "", 0 );
1509
1510 append( sb, "password", 2 );
1511 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
1512 append( sb, "Expression: ${password}", 3 );
1513 append( sb, "", 0 );
1514
1515 append( sb, "privateKey", 2 );
1516 append( sb, "The private key (used by java svn).", 3 );
1517 append( sb, "Expression: ${privateKey}", 3 );
1518 append( sb, "", 0 );
1519
1520 append( sb, "providerImplementations", 2 );
1521 append( sb, "List of provider implementations.", 3 );
1522 append( sb, "", 0 );
1523
1524 append( sb, "pushChanges (Default: true)", 2 );
1525 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
1526 append( sb, "Expression: ${pushChanges}", 3 );
1527 append( sb, "", 0 );
1528
1529 append( sb, "remoteTagging (Default: true)", 2 );
1530 append( sb, "currently only implemented with svn scm. Enable a workaround to prevent issue due to svn client > 1.5.0 (http://jira.codehaus.org/browse/SCM-406)", 3 );
1531 append( sb, "Expression: ${remoteTagging}", 3 );
1532 append( sb, "", 0 );
1533
1534 append( sb, "systemProperties", 2 );
1535 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
1536 append( sb, "", 0 );
1537
1538 append( sb, "tag", 2 );
1539 append( sb, "The tag name.", 3 );
1540 append( sb, "Required: Yes", 3 );
1541 append( sb, "Expression: ${tag}", 3 );
1542 append( sb, "", 0 );
1543
1544 append( sb, "tagBase", 2 );
1545 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
1546 append( sb, "Expression: ${tagBase}", 3 );
1547 append( sb, "", 0 );
1548
1549 append( sb, "timestampFormat (Default: yyyyMMddHHmmss)", 2 );
1550 append( sb, "Set the timestamp format.", 3 );
1551 append( sb, "Expression: ${timestampFormat}", 3 );
1552 append( sb, "", 0 );
1553
1554 append( sb, "timestampPosition (Default: end)", 2 );
1555 append( sb, "Define the timestamp position (end or begin).", 3 );
1556 append( sb, "Expression: ${timestampPosition}", 3 );
1557 append( sb, "", 0 );
1558
1559 append( sb, "timestampPrefix (Default: -)", 2 );
1560 append( sb, "Timestamp tag prefix.", 3 );
1561 append( sb, "Expression: ${timestampPrefix}", 3 );
1562 append( sb, "", 0 );
1563
1564 append( sb, "username", 2 );
1565 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
1566 append( sb, "Expression: ${username}", 3 );
1567 append( sb, "", 0 );
1568
1569 append( sb, "workingDirectory", 2 );
1570 append( sb, "The working directory.", 3 );
1571 append( sb, "Expression: ${workingDirectory}", 3 );
1572 append( sb, "", 0 );
1573 }
1574 }
1575
1576 if ( goal == null || goal.length() <= 0 || "unedit".equals( goal ) )
1577 {
1578 append( sb, "scm:unedit", 0 );
1579 append( sb, "Unedit/unlock a set of files.", 1 );
1580 append( sb, "", 0 );
1581 if ( detail )
1582 {
1583 append( sb, "Available parameters:", 1 );
1584 append( sb, "", 0 );
1585
1586 append( sb, "basedir", 2 );
1587 append( sb, "The base directory.", 3 );
1588 append( sb, "Required: Yes", 3 );
1589 append( sb, "Expression: ${basedir}", 3 );
1590 append( sb, "", 0 );
1591
1592 append( sb, "connectionType (Default: connection)", 2 );
1593 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
1594 append( sb, "Expression: ${connectionType}", 3 );
1595 append( sb, "", 0 );
1596
1597 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
1598 append( sb, "The SCM connection URL.", 3 );
1599 append( sb, "Expression: ${connectionUrl}", 3 );
1600 append( sb, "", 0 );
1601
1602 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
1603 append( sb, "The SCM connection URL for developers.", 3 );
1604 append( sb, "Expression: ${connectionUrl}", 3 );
1605 append( sb, "", 0 );
1606
1607 append( sb, "excludes", 2 );
1608 append( sb, "Comma separated list of excludes file pattern.", 3 );
1609 append( sb, "Expression: ${excludes}", 3 );
1610 append( sb, "", 0 );
1611
1612 append( sb, "includes", 2 );
1613 append( sb, "Comma separated list of includes file pattern.", 3 );
1614 append( sb, "Expression: ${includes}", 3 );
1615 append( sb, "", 0 );
1616
1617 append( sb, "passphrase", 2 );
1618 append( sb, "The passphrase (used by java svn).", 3 );
1619 append( sb, "Expression: ${passphrase}", 3 );
1620 append( sb, "", 0 );
1621
1622 append( sb, "password", 2 );
1623 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
1624 append( sb, "Expression: ${password}", 3 );
1625 append( sb, "", 0 );
1626
1627 append( sb, "privateKey", 2 );
1628 append( sb, "The private key (used by java svn).", 3 );
1629 append( sb, "Expression: ${privateKey}", 3 );
1630 append( sb, "", 0 );
1631
1632 append( sb, "providerImplementations", 2 );
1633 append( sb, "List of provider implementations.", 3 );
1634 append( sb, "", 0 );
1635
1636 append( sb, "pushChanges (Default: true)", 2 );
1637 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
1638 append( sb, "Expression: ${pushChanges}", 3 );
1639 append( sb, "", 0 );
1640
1641 append( sb, "systemProperties", 2 );
1642 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
1643 append( sb, "", 0 );
1644
1645 append( sb, "tagBase", 2 );
1646 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
1647 append( sb, "Expression: ${tagBase}", 3 );
1648 append( sb, "", 0 );
1649
1650 append( sb, "username", 2 );
1651 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
1652 append( sb, "Expression: ${username}", 3 );
1653 append( sb, "", 0 );
1654
1655 append( sb, "workingDirectory", 2 );
1656 append( sb, "The working directory.", 3 );
1657 append( sb, "Expression: ${workingDirectory}", 3 );
1658 append( sb, "", 0 );
1659 }
1660 }
1661
1662 if ( goal == null || goal.length() <= 0 || "update".equals( goal ) )
1663 {
1664 append( sb, "scm:update", 0 );
1665 append( sb, "Update the local working copy with the latest source from the configured scm url.", 1 );
1666 append( sb, "", 0 );
1667 if ( detail )
1668 {
1669 append( sb, "Available parameters:", 1 );
1670 append( sb, "", 0 );
1671
1672 append( sb, "basedir", 2 );
1673 append( sb, "The base directory.", 3 );
1674 append( sb, "Required: Yes", 3 );
1675 append( sb, "Expression: ${basedir}", 3 );
1676 append( sb, "", 0 );
1677
1678 append( sb, "connectionType (Default: connection)", 2 );
1679 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
1680 append( sb, "Expression: ${connectionType}", 3 );
1681 append( sb, "", 0 );
1682
1683 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
1684 append( sb, "The SCM connection URL.", 3 );
1685 append( sb, "Expression: ${connectionUrl}", 3 );
1686 append( sb, "", 0 );
1687
1688 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
1689 append( sb, "The SCM connection URL for developers.", 3 );
1690 append( sb, "Expression: ${connectionUrl}", 3 );
1691 append( sb, "", 0 );
1692
1693 append( sb, "excludes", 2 );
1694 append( sb, "Comma separated list of excludes file pattern.", 3 );
1695 append( sb, "Expression: ${excludes}", 3 );
1696 append( sb, "", 0 );
1697
1698 append( sb, "includes", 2 );
1699 append( sb, "Comma separated list of includes file pattern.", 3 );
1700 append( sb, "Expression: ${includes}", 3 );
1701 append( sb, "", 0 );
1702
1703 append( sb, "passphrase", 2 );
1704 append( sb, "The passphrase (used by java svn).", 3 );
1705 append( sb, "Expression: ${passphrase}", 3 );
1706 append( sb, "", 0 );
1707
1708 append( sb, "password", 2 );
1709 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
1710 append( sb, "Expression: ${password}", 3 );
1711 append( sb, "", 0 );
1712
1713 append( sb, "privateKey", 2 );
1714 append( sb, "The private key (used by java svn).", 3 );
1715 append( sb, "Expression: ${privateKey}", 3 );
1716 append( sb, "", 0 );
1717
1718 append( sb, "providerImplementations", 2 );
1719 append( sb, "List of provider implementations.", 3 );
1720 append( sb, "", 0 );
1721
1722 append( sb, "pushChanges (Default: true)", 2 );
1723 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
1724 append( sb, "Expression: ${pushChanges}", 3 );
1725 append( sb, "", 0 );
1726
1727 append( sb, "revisionKey (Default: scm.revision)", 2 );
1728 append( sb, "The project property where to store the revision name.", 3 );
1729 append( sb, "Expression: ${revisionKey}", 3 );
1730 append( sb, "", 0 );
1731
1732 append( sb, "runChangelog (Default: false)", 2 );
1733 append( sb, "Run Changelog after update.", 3 );
1734 append( sb, "Expression: ${runChangelog}", 3 );
1735 append( sb, "", 0 );
1736
1737 append( sb, "scmVersion", 2 );
1738 append( sb, "The version (revision number/branch name/tag name).", 3 );
1739 append( sb, "Expression: ${scmVersion}", 3 );
1740 append( sb, "", 0 );
1741
1742 append( sb, "scmVersionType", 2 );
1743 append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 );
1744 append( sb, "Expression: ${scmVersionType}", 3 );
1745 append( sb, "", 0 );
1746
1747 append( sb, "systemProperties", 2 );
1748 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
1749 append( sb, "", 0 );
1750
1751 append( sb, "tagBase", 2 );
1752 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
1753 append( sb, "Expression: ${tagBase}", 3 );
1754 append( sb, "", 0 );
1755
1756 append( sb, "username", 2 );
1757 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
1758 append( sb, "Expression: ${username}", 3 );
1759 append( sb, "", 0 );
1760
1761 append( sb, "workingDirectory", 2 );
1762 append( sb, "The working directory.", 3 );
1763 append( sb, "Expression: ${workingDirectory}", 3 );
1764 append( sb, "", 0 );
1765 }
1766 }
1767
1768 if ( goal == null || goal.length() <= 0 || "update-subprojects".equals( goal ) )
1769 {
1770 append( sb, "scm:update-subprojects", 0 );
1771 append( sb, "Updates all projects in a multi project build. This is useful for users who have adopted the flat project structure where the aggregator project is a sibling of the sub projects rather than sitting in the parent directory.", 1 );
1772 append( sb, "", 0 );
1773 if ( detail )
1774 {
1775 append( sb, "Available parameters:", 1 );
1776 append( sb, "", 0 );
1777
1778 append( sb, "basedir", 2 );
1779 append( sb, "The base directory.", 3 );
1780 append( sb, "Required: Yes", 3 );
1781 append( sb, "Expression: ${basedir}", 3 );
1782 append( sb, "", 0 );
1783
1784 append( sb, "connectionType (Default: connection)", 2 );
1785 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
1786 append( sb, "Expression: ${connectionType}", 3 );
1787 append( sb, "", 0 );
1788
1789 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
1790 append( sb, "The SCM connection URL.", 3 );
1791 append( sb, "Expression: ${connectionUrl}", 3 );
1792 append( sb, "", 0 );
1793
1794 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
1795 append( sb, "The SCM connection URL for developers.", 3 );
1796 append( sb, "Expression: ${connectionUrl}", 3 );
1797 append( sb, "", 0 );
1798
1799 append( sb, "excludes", 2 );
1800 append( sb, "Comma separated list of excludes file pattern.", 3 );
1801 append( sb, "Expression: ${excludes}", 3 );
1802 append( sb, "", 0 );
1803
1804 append( sb, "includes", 2 );
1805 append( sb, "Comma separated list of includes file pattern.", 3 );
1806 append( sb, "Expression: ${includes}", 3 );
1807 append( sb, "", 0 );
1808
1809 append( sb, "passphrase", 2 );
1810 append( sb, "The passphrase (used by java svn).", 3 );
1811 append( sb, "Expression: ${passphrase}", 3 );
1812 append( sb, "", 0 );
1813
1814 append( sb, "password", 2 );
1815 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
1816 append( sb, "Expression: ${password}", 3 );
1817 append( sb, "", 0 );
1818
1819 append( sb, "privateKey", 2 );
1820 append( sb, "The private key (used by java svn).", 3 );
1821 append( sb, "Expression: ${privateKey}", 3 );
1822 append( sb, "", 0 );
1823
1824 append( sb, "providerImplementations", 2 );
1825 append( sb, "List of provider implementations.", 3 );
1826 append( sb, "", 0 );
1827
1828 append( sb, "pushChanges (Default: true)", 2 );
1829 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
1830 append( sb, "Expression: ${pushChanges}", 3 );
1831 append( sb, "", 0 );
1832
1833 append( sb, "revisionKey (Default: scm.revision)", 2 );
1834 append( sb, "The project property where to store the revision name.", 3 );
1835 append( sb, "Expression: ${revisionKey}", 3 );
1836 append( sb, "", 0 );
1837
1838 append( sb, "scmVersion", 2 );
1839 append( sb, "The version (revision number/branch name/tag name).", 3 );
1840 append( sb, "Expression: ${scmVersion}", 3 );
1841 append( sb, "", 0 );
1842
1843 append( sb, "scmVersionType", 2 );
1844 append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 );
1845 append( sb, "Expression: ${scmVersionType}", 3 );
1846 append( sb, "", 0 );
1847
1848 append( sb, "systemProperties", 2 );
1849 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
1850 append( sb, "", 0 );
1851
1852 append( sb, "tagBase", 2 );
1853 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
1854 append( sb, "Expression: ${tagBase}", 3 );
1855 append( sb, "", 0 );
1856
1857 append( sb, "username", 2 );
1858 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
1859 append( sb, "Expression: ${username}", 3 );
1860 append( sb, "", 0 );
1861
1862 append( sb, "workingDirectory", 2 );
1863 append( sb, "The working directory.", 3 );
1864 append( sb, "Expression: ${workingDirectory}", 3 );
1865 append( sb, "", 0 );
1866 }
1867 }
1868
1869 if ( goal == null || goal.length() <= 0 || "validate".equals( goal ) )
1870 {
1871 append( sb, "scm:validate", 0 );
1872 append( sb, "Validate scm connection string.", 1 );
1873 append( sb, "", 0 );
1874 if ( detail )
1875 {
1876 append( sb, "Available parameters:", 1 );
1877 append( sb, "", 0 );
1878
1879 append( sb, "basedir", 2 );
1880 append( sb, "The base directory.", 3 );
1881 append( sb, "Required: Yes", 3 );
1882 append( sb, "Expression: ${basedir}", 3 );
1883 append( sb, "", 0 );
1884
1885 append( sb, "connectionType (Default: connection)", 2 );
1886 append( sb, "The type of connection to use (connection or developerConnection).", 3 );
1887 append( sb, "Expression: ${connectionType}", 3 );
1888 append( sb, "", 0 );
1889
1890 append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 );
1891 append( sb, "The SCM connection URL.", 3 );
1892 append( sb, "Expression: ${connectionUrl}", 3 );
1893 append( sb, "", 0 );
1894
1895 append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 );
1896 append( sb, "The SCM connection URL for developers.", 3 );
1897 append( sb, "Expression: ${connectionUrl}", 3 );
1898 append( sb, "", 0 );
1899
1900 append( sb, "excludes", 2 );
1901 append( sb, "Comma separated list of excludes file pattern.", 3 );
1902 append( sb, "Expression: ${excludes}", 3 );
1903 append( sb, "", 0 );
1904
1905 append( sb, "includes", 2 );
1906 append( sb, "Comma separated list of includes file pattern.", 3 );
1907 append( sb, "Expression: ${includes}", 3 );
1908 append( sb, "", 0 );
1909
1910 append( sb, "passphrase", 2 );
1911 append( sb, "The passphrase (used by java svn).", 3 );
1912 append( sb, "Expression: ${passphrase}", 3 );
1913 append( sb, "", 0 );
1914
1915 append( sb, "password", 2 );
1916 append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 );
1917 append( sb, "Expression: ${password}", 3 );
1918 append( sb, "", 0 );
1919
1920 append( sb, "privateKey", 2 );
1921 append( sb, "The private key (used by java svn).", 3 );
1922 append( sb, "Expression: ${privateKey}", 3 );
1923 append( sb, "", 0 );
1924
1925 append( sb, "providerImplementations", 2 );
1926 append( sb, "List of provider implementations.", 3 );
1927 append( sb, "", 0 );
1928
1929 append( sb, "pushChanges (Default: true)", 2 );
1930 append( sb, "Should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily share it with other users.", 3 );
1931 append( sb, "Expression: ${pushChanges}", 3 );
1932 append( sb, "", 0 );
1933
1934 append( sb, "scmConnection (Default: ${project.scm.connection})", 2 );
1935 append( sb, "The scm connection url.", 3 );
1936 append( sb, "Expression: ${scmConnection}", 3 );
1937 append( sb, "", 0 );
1938
1939 append( sb, "scmDeveloperConnection (Default: ${project.scm.developerConnection})", 2 );
1940 append( sb, "The scm connection url for developers.", 3 );
1941 append( sb, "Expression: ${scmDeveloperConnection}", 3 );
1942 append( sb, "", 0 );
1943
1944 append( sb, "systemProperties", 2 );
1945 append( sb, "List of System properties to pass to the JUnit tests.", 3 );
1946 append( sb, "", 0 );
1947
1948 append( sb, "tagBase", 2 );
1949 append( sb, "The url of tags base directory (used by svn protocol). It is not necessary to set it if you use the standard svn layout (branches/tags/trunk).", 3 );
1950 append( sb, "Expression: ${tagBase}", 3 );
1951 append( sb, "", 0 );
1952
1953 append( sb, "username", 2 );
1954 append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 );
1955 append( sb, "Expression: ${username}", 3 );
1956 append( sb, "", 0 );
1957
1958 append( sb, "workingDirectory", 2 );
1959 append( sb, "The working directory.", 3 );
1960 append( sb, "Expression: ${workingDirectory}", 3 );
1961 append( sb, "", 0 );
1962 }
1963 }
1964
1965 if ( getLog().isInfoEnabled() )
1966 {
1967 getLog().info( sb.toString() );
1968 }
1969 }
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980 private static String repeat( String str, int repeat )
1981 {
1982 StringBuffer buffer = new StringBuffer( repeat * str.length() );
1983
1984 for ( int i = 0; i < repeat; i++ )
1985 {
1986 buffer.append( str );
1987 }
1988
1989 return buffer.toString();
1990 }
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000 private void append( StringBuffer sb, String description, int indent )
2001 {
2002 for ( Iterator it = toLines( description, indent, indentSize, lineLength ).iterator(); it.hasNext(); )
2003 {
2004 sb.append( it.next().toString() ).append( '\n' );
2005 }
2006 }
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018 private static List toLines( String text, int indent, int indentSize, int lineLength )
2019 {
2020 List<String> lines = new ArrayList<String>();
2021
2022 String ind = repeat( "\t", indent );
2023 String[] plainLines = text.split( "(\r\n)|(\r)|(\n)" );
2024 for ( int i = 0; i < plainLines.length; i++ )
2025 {
2026 toLines( lines, ind + plainLines[i], indentSize, lineLength );
2027 }
2028
2029 return lines;
2030 }
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040 private static void toLines( List<String> lines, String line, int indentSize, int lineLength )
2041 {
2042 int lineIndent = getIndentLevel( line );
2043 StringBuffer buf = new StringBuffer( 256 );
2044 String[] tokens = line.split( " +" );
2045 for ( int i = 0; i < tokens.length; i++ )
2046 {
2047 String token = tokens[i];
2048 if ( i > 0 )
2049 {
2050 if ( buf.length() + token.length() >= lineLength )
2051 {
2052 lines.add( buf.toString() );
2053 buf.setLength( 0 );
2054 buf.append( repeat( " ", lineIndent * indentSize ) );
2055 }
2056 else
2057 {
2058 buf.append( ' ' );
2059 }
2060 }
2061 for ( int j = 0; j < token.length(); j++ )
2062 {
2063 char c = token.charAt( j );
2064 if ( c == '\t' )
2065 {
2066 buf.append( repeat( " ", indentSize - buf.length() % indentSize ) );
2067 }
2068 else if ( c == '\u00A0' )
2069 {
2070 buf.append( ' ' );
2071 }
2072 else
2073 {
2074 buf.append( c );
2075 }
2076 }
2077 }
2078 lines.add( buf.toString() );
2079 }
2080
2081
2082
2083
2084
2085
2086
2087 private static int getIndentLevel( String line )
2088 {
2089 int level = 0;
2090 for ( int i = 0; i < line.length() && line.charAt( i ) == '\t'; i++ )
2091 {
2092 level++;
2093 }
2094 for ( int i = level + 1; i <= level + 4 && i < line.length(); i++ )
2095 {
2096 if ( line.charAt( i ) == '\t' )
2097 {
2098 level++;
2099 break;
2100 }
2101 }
2102 return level;
2103 }
2104 }