001 package org.apache.maven.scm.plugin; 002 003 import java.util.ArrayList; 004 import java.util.Iterator; 005 import java.util.List; 006 007 import org.apache.maven.plugin.AbstractMojo; 008 import org.apache.maven.plugin.MojoExecutionException; 009 010 /** 011 * Display help information on maven-scm-plugin.<br/> Call <pre> mvn scm:help -Ddetail=true -Dgoal=<goal-name></pre> to display parameter details. 012 * 013 * @version generated on Sat Sep 08 17:44:32 CEST 2012 014 * @author org.apache.maven.tools.plugin.generator.PluginHelpGenerator (version 2.9) 015 * @goal help 016 * @requiresProject false 017 * @threadSafe 018 */ 019 @SuppressWarnings( "all" ) 020 public class HelpMojo 021 extends AbstractMojo 022 { 023 /** 024 * If <code>true</code>, display all settable properties for each goal. 025 * 026 * @parameter expression="${detail}" default-value="false" 027 */ 028 private boolean detail; 029 030 /** 031 * The name of the goal for which to show help. If unspecified, all goals will be displayed. 032 * 033 * @parameter expression="${goal}" 034 */ 035 private java.lang.String goal; 036 037 /** 038 * The maximum length of a display line, should be positive. 039 * 040 * @parameter expression="${lineLength}" default-value="80" 041 */ 042 private int lineLength; 043 044 /** 045 * The number of spaces per indentation level, should be positive. 046 * 047 * @parameter expression="${indentSize}" default-value="2" 048 */ 049 private int indentSize; 050 051 052 /** {@inheritDoc} */ 053 public void execute() 054 throws MojoExecutionException 055 { 056 if ( lineLength <= 0 ) 057 { 058 getLog().warn( "The parameter 'lineLength' should be positive, using '80' as default." ); 059 lineLength = 80; 060 } 061 if ( indentSize <= 0 ) 062 { 063 getLog().warn( "The parameter 'indentSize' should be positive, using '2' as default." ); 064 indentSize = 2; 065 } 066 067 StringBuffer sb = new StringBuffer(); 068 069 append( sb, "org.apache.maven.plugins:maven-scm-plugin:1.8", 0 ); 070 append( sb, "", 0 ); 071 072 append( sb, "Maven SCM Plugin", 0 ); 073 append( sb, "Maven Plugin that allows accessing different SCMs.", 1 ); 074 append( sb, "", 0 ); 075 076 if ( goal == null || goal.length() <= 0 ) 077 { 078 append( sb, "This plugin has 19 goals:", 0 ); 079 append( sb, "", 0 ); 080 } 081 082 if ( goal == null || goal.length() <= 0 || "add".equals( goal ) ) 083 { 084 append( sb, "scm:add", 0 ); 085 append( sb, "Add a file set to the project.", 1 ); 086 append( sb, "", 0 ); 087 if ( detail ) 088 { 089 append( sb, "Available parameters:", 1 ); 090 append( sb, "", 0 ); 091 092 append( sb, "basedir", 2 ); 093 append( sb, "The base directory.", 3 ); 094 append( sb, "Required: Yes", 3 ); 095 append( sb, "Expression: ${basedir}", 3 ); 096 append( sb, "", 0 ); 097 098 append( sb, "connectionType (Default: connection)", 2 ); 099 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 * <p>Repeat a String <code>n</code> times to form a new string.</p> 1973 * 1974 * @param str String to repeat 1975 * @param repeat number of times to repeat str 1976 * @return String with repeated String 1977 * @throws NegativeArraySizeException if <code>repeat < 0</code> 1978 * @throws NullPointerException if str is <code>null</code> 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 * Append a description to the buffer by respecting the indentSize and lineLength parameters. 1994 * <b>Note</b>: The last character is always a new line. 1995 * 1996 * @param sb The buffer to append the description, not <code>null</code>. 1997 * @param description The description, not <code>null</code>. 1998 * @param indent The base indentation level of each line, must not be negative. 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 * Splits the specified text into lines of convenient display length. 2010 * 2011 * @param text The text to split into lines, must not be <code>null</code>. 2012 * @param indent The base indentation level of each line, must not be negative. 2013 * @param indentSize The size of each indentation, must not be negative. 2014 * @param lineLength The length of the line, must not be negative. 2015 * @return The sequence of display lines, never <code>null</code>. 2016 * @throws NegativeArraySizeException if <code>indent < 0</code> 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 * Adds the specified line to the output sequence, performing line wrapping if necessary. 2034 * 2035 * @param lines The sequence of display lines, must not be <code>null</code>. 2036 * @param line The line to add, must not be <code>null</code>. 2037 * @param indentSize The size of each indentation, must not be negative. 2038 * @param lineLength The length of the line, must not be negative. 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 * Gets the indentation level of the specified line. 2083 * 2084 * @param line The line whose indentation level should be retrieved, must not be <code>null</code>. 2085 * @return The indentation level of the line. 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 }