All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.maven.scm.plugin.HelpMojo Maven / Gradle / Ivy

package org.apache.maven.scm.plugin;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;

/**
 * Display help information on maven-scm-plugin.
Call
  mvn scm:help -Ddetail=true -Dgoal=<goal-name>
to display parameter details. * * @version generated on Mon Mar 23 23:39:09 CET 2009 * @author org.apache.maven.tools.plugin.generator.PluginHelpGenerator (version 2.4.3) * @goal help * @requiresProject false */ public class HelpMojo extends AbstractMojo { /** * If true, display all settable properties for each goal. * * @parameter expression="${detail}" default-value="false" */ private boolean detail; /** * The name of the goal for which to show help. If unspecified, all goals will be displayed. * * @parameter expression="${goal}" */ private java.lang.String goal; /** * The maximum length of a display line, should be positive. * * @parameter expression="${lineLength}" default-value="80" */ private int lineLength; /** * The number of spaces per indentation level, should be positive. * * @parameter expression="${indentSize}" default-value="2" */ private int indentSize; /** {@inheritDoc} */ public void execute() throws MojoExecutionException { if ( lineLength <= 0 ) { getLog().warn( "The parameter 'lineLength' should be positive, using '80' as default." ); lineLength = 80; } if ( indentSize <= 0 ) { getLog().warn( "The parameter 'indentSize' should be positive, using '2' as default." ); indentSize = 2; } StringBuffer sb = new StringBuffer(); append( sb, "org.apache.maven.plugins:maven-scm-plugin:1.2", 0 ); append( sb, "", 0 ); append( sb, "Maven SCM Plugin 1.2", 0 ); append( sb, "Maven Plugin that allows accessing different SCMs.", 1 ); append( sb, "", 0 ); if ( goal == null || goal.length() <= 0 ) { append( sb, "This plugin has 18 goals:", 0 ); append( sb, "", 0 ); } if ( goal == null || goal.length() <= 0 || "add".equals( goal ) ) { append( sb, "scm:add", 0 ); append( sb, "Add a file set to the project.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "bootstrap".equals( goal ) ) { append( sb, "scm:bootstrap", 0 ); append( sb, "Pull the project source from the configured scm and execute the configured goals.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "checkoutDirectory (Default: ${project.build.directory}/checkout)", 2 ); append( sb, "The directory to checkout the sources to for the bootstrap and checkout goals.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "goals", 2 ); 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 ); append( sb, "", 0 ); append( sb, "goalsDirectory", 2 ); 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 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "profiles", 2 ); append( sb, "A list of profiles to run with the goals. Multiple profiles must be comma separated with no spaces.", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "scmVersion", 2 ); append( sb, "The version (revision number/branch name/tag name).", 3 ); append( sb, "", 0 ); append( sb, "scmVersionType", 2 ); append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 ); append( sb, "", 0 ); append( sb, "skipCheckoutIfExists (Default: false)", 2 ); append( sb, "Skip checkout if checkoutDirectory exists.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "useExport", 2 ); append( sb, "Use Export instead of checkout", 3 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "branch".equals( goal ) ) { append( sb, "scm:branch", 0 ); append( sb, "Branch the project.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "branch", 2 ); append( sb, "The branch name.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "message", 2 ); append( sb, "The message applied to the tag creation.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "changelog".equals( goal ) ) { append( sb, "scm:changelog", 0 ); append( sb, "Dump changelog contents to console. It is mainly used to test maven-scm-api\'s changelog command.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "dateFormat", 2 ); append( sb, "Date Format in changelog output of scm tool.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "endDate", 2 ); append( sb, "End Date.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "scmVersion", 2 ); append( sb, "The version (revision number/branch name/tag name).", 3 ); append( sb, "", 0 ); append( sb, "scmVersionType", 2 ); append( sb, "The version type (branch/tag) of scmVersion.", 3 ); append( sb, "", 0 ); append( sb, "startDate", 2 ); append( sb, "Start Date.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "userDateFormat (Default: yyyy-MM-dd)", 2 ); append( sb, "Date format to use for the specified startDate and/or endDate.", 3 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "check-local-modification".equals( goal ) ) { append( sb, "scm:check-local-modification", 0 ); append( sb, "This mojo will fail the build if there is any local modifications", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "errorMessage (Default: The build will stop as there is local modifications)", 2 ); append( sb, "Custom error message", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "skip (Default: false)", 2 ); append( sb, "Custom error message", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "checkin".equals( goal ) ) { append( sb, "scm:checkin", 0 ); append( sb, "Commit changes to the configured scm url.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: developerConnection)", 2 ); append( sb, "The configured scm url to use.", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "message", 2 ); append( sb, "Commit log.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "scmVersion", 2 ); append( sb, "The version (revision number/branch name/tag name).", 3 ); append( sb, "", 0 ); append( sb, "scmVersionType", 2 ); append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "checkout".equals( goal ) ) { append( sb, "scm:checkout", 0 ); append( sb, "Get a fresh copy of the latest source from the configured scm url.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "checkoutDirectory (Default: ${project.build.directory}/checkout)", 2 ); append( sb, "The directory to checkout the sources to for the bootstrap and checkout goals.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "scmVersion", 2 ); append( sb, "The version (revision number/branch name/tag name).", 3 ); append( sb, "", 0 ); append( sb, "scmVersionType", 2 ); append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 ); append( sb, "", 0 ); append( sb, "skipCheckoutIfExists (Default: false)", 2 ); append( sb, "Skip checkout if checkoutDirectory exists.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "useExport", 2 ); append( sb, "Use Export instead of checkout", 3 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "diff".equals( goal ) ) { append( sb, "scm:diff", 0 ); append( sb, "Display the difference of the working copy with the latest copy in the configured scm url.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "endScmVersion", 2 ); append( sb, "The version (revision number/branch name/tag name).", 3 ); append( sb, "", 0 ); append( sb, "endScmVersionType", 2 ); append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "outputFile (Default: ${project.artifactId}.diff)", 2 ); append( sb, "Output file name.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "startScmVersion", 2 ); append( sb, "The version (revision number/branch name/tag name).", 3 ); append( sb, "", 0 ); append( sb, "startScmVersionType", 2 ); append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "edit".equals( goal ) ) { append( sb, "scm:edit", 0 ); append( sb, "Edit/lock a set of files.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "export".equals( goal ) ) { append( sb, "scm:export", 0 ); append( sb, "Get a fresh exported copy of the latest source from the configured scm url.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "exportDirectory (Default: ${project.build.directory}/export)", 2 ); append( sb, "The directory to export the sources to.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "scmVersion", 2 ); append( sb, "The version (revision number/branch name/tag name).", 3 ); append( sb, "", 0 ); append( sb, "scmVersionType", 2 ); append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 ); append( sb, "", 0 ); append( sb, "skipExportIfExists (Default: false)", 2 ); append( sb, "Skip export if exportDirectory exists.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "help".equals( goal ) ) { append( sb, "scm:help", 0 ); append( sb, "Display help information on maven-scm-plugin.\nCall\n\u00a0\u00a0mvn\u00a0scm:help\u00a0-Ddetail=true\u00a0-Dgoal=\nto display parameter details.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "detail (Default: false)", 2 ); append( sb, "If true, display all settable properties for each goal.", 3 ); append( sb, "", 0 ); append( sb, "goal", 2 ); append( sb, "The name of the goal for which to show help. If unspecified, all goals will be displayed.", 3 ); append( sb, "", 0 ); append( sb, "lineLength (Default: 80)", 2 ); append( sb, "The maximum length of a display line, should be positive.", 3 ); append( sb, "", 0 ); append( sb, "indentSize (Default: 2)", 2 ); append( sb, "The number of spaces per indentation level, should be positive.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "list".equals( goal ) ) { append( sb, "scm:list", 0 ); append( sb, "Get the list of project files.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "recursive (Default: true)", 2 ); append( sb, "Use recursive mode.", 3 ); append( sb, "", 0 ); append( sb, "scmVersion", 2 ); append( sb, "The version (revision number/branch name/tag name).", 3 ); append( sb, "", 0 ); append( sb, "scmVersionType", 2 ); append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "status".equals( goal ) ) { append( sb, "scm:status", 0 ); append( sb, "Display the modification status of the files in the configured scm url.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "tag".equals( goal ) ) { append( sb, "scm:tag", 0 ); append( sb, "Tag the project.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "addTimestamp (Default: false)", 2 ); append( sb, "Use timestamp tagging.", 3 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "message", 2 ); append( sb, "The message applied to the tag creation.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "remoteTagging (Default: true)", 2 ); 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 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tag", 2 ); append( sb, "The tag name.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "timestampFormat (Default: yyyyMMddHHmmss)", 2 ); append( sb, "Set the timestamp format.", 3 ); append( sb, "", 0 ); append( sb, "timestampPosition (Default: end)", 2 ); append( sb, "Define the timestamp position (end or begin).", 3 ); append( sb, "", 0 ); append( sb, "timestampPrefix (Default: -)", 2 ); append( sb, "Timestamp tag prefix.", 3 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "unedit".equals( goal ) ) { append( sb, "scm:unedit", 0 ); append( sb, "Unedit/unlock a set of files.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "update".equals( goal ) ) { append( sb, "scm:update", 0 ); append( sb, "Update the local working copy with the latest source from the configured scm url.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "revisionKey (Default: scm.revision)", 2 ); append( sb, "The project property where to store the revision name.", 3 ); append( sb, "", 0 ); append( sb, "runChangelog (Default: false)", 2 ); append( sb, "Run Changelog after update.", 3 ); append( sb, "", 0 ); append( sb, "scmVersion", 2 ); append( sb, "The version (revision number/branch name/tag name).", 3 ); append( sb, "", 0 ); append( sb, "scmVersionType", 2 ); append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "update-subprojects".equals( goal ) ) { append( sb, "scm:update-subprojects", 0 ); 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 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "revisionKey (Default: scm.revision)", 2 ); append( sb, "The project property where to store the revision name.", 3 ); append( sb, "", 0 ); append( sb, "scmVersion", 2 ); append( sb, "The version (revision number/branch name/tag name).", 3 ); append( sb, "", 0 ); append( sb, "scmVersionType", 2 ); append( sb, "The version type (branch/tag/revision) of scmVersion.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( goal == null || goal.length() <= 0 || "validate".equals( goal ) ) { append( sb, "scm:validate", 0 ); append( sb, "Validate scm connection string.", 1 ); append( sb, "", 0 ); if ( detail ) { append( sb, "Available parameters:", 1 ); append( sb, "", 0 ); append( sb, "basedir", 2 ); append( sb, "The base directory.", 3 ); append( sb, "", 0 ); append( sb, "connectionType (Default: connection)", 2 ); append( sb, "The type of connection to use (connection or developerConnection).", 3 ); append( sb, "", 0 ); append( sb, "connectionUrl (Default: ${project.scm.connection})", 2 ); append( sb, "The SCM connection URL.", 3 ); append( sb, "", 0 ); append( sb, "developerConnectionUrl (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The SCM connection URL for developers.", 3 ); append( sb, "", 0 ); append( sb, "excludes", 2 ); append( sb, "Comma separated list of excludes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "includes", 2 ); append( sb, "Comma separated list of includes file pattern.", 3 ); append( sb, "", 0 ); append( sb, "passphrase", 2 ); append( sb, "The passphrase (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "password", 2 ); append( sb, "The user password (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "privateKey", 2 ); append( sb, "The private key (used by java svn).", 3 ); append( sb, "", 0 ); append( sb, "providerImplementations", 2 ); append( sb, "List of provider implementations.", 3 ); append( sb, "", 0 ); append( sb, "scmConnection (Default: ${project.scm.connection})", 2 ); append( sb, "The scm connection url.", 3 ); append( sb, "", 0 ); append( sb, "scmDeveloperConnection (Default: ${project.scm.developerConnection})", 2 ); append( sb, "The scm connection url for developers.", 3 ); append( sb, "", 0 ); append( sb, "systemProperties", 2 ); append( sb, "List of System properties to pass to the JUnit tests.", 3 ); append( sb, "", 0 ); append( sb, "tagBase", 2 ); 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 ); append( sb, "", 0 ); append( sb, "username", 2 ); append( sb, "The user name (used by svn, starteam and perforce protocol).", 3 ); append( sb, "", 0 ); append( sb, "workingDirectory", 2 ); append( sb, "The working directory.", 3 ); append( sb, "", 0 ); } } if ( getLog().isInfoEnabled() ) { getLog().info( sb.toString() ); } } /** *

Repeat a String n times to form a new string.

* * @param str String to repeat * @param repeat number of times to repeat str * @return String with repeated String * @throws NegativeArraySizeException if repeat < 0 * @throws NullPointerException if str is null */ private static String repeat( String str, int repeat ) { StringBuffer buffer = new StringBuffer( repeat * str.length() ); for ( int i = 0; i < repeat; i++ ) { buffer.append( str ); } return buffer.toString(); } /** * Append a description to the buffer by respecting the indentSize and lineLength parameters. * Note: The last character is always a new line. * * @param sb The buffer to append the description, not null. * @param description The description, not null. * @param indent The base indentation level of each line, must not be negative. */ private void append( StringBuffer sb, String description, int indent ) { for ( Iterator it = toLines( description, indent, indentSize, lineLength ).iterator(); it.hasNext(); ) { sb.append( it.next().toString() ).append( '\n' ); } } /** * Splits the specified text into lines of convenient display length. * * @param text The text to split into lines, must not be null. * @param indent The base indentation level of each line, must not be negative. * @param indentSize The size of each indentation, must not be negative. * @param lineLength The length of the line, must not be negative. * @return The sequence of display lines, never null. * @throws NegativeArraySizeException if indent < 0 */ private static List toLines( String text, int indent, int indentSize, int lineLength ) { List lines = new ArrayList(); String ind = repeat( "\t", indent ); String[] plainLines = text.split( "(\r\n)|(\r)|(\n)" ); for ( int i = 0; i < plainLines.length; i++ ) { toLines( lines, ind + plainLines[i], indentSize, lineLength ); } return lines; } /** * Adds the specified line to the output sequence, performing line wrapping if necessary. * * @param lines The sequence of display lines, must not be null. * @param line The line to add, must not be null. * @param indentSize The size of each indentation, must not be negative. * @param lineLength The length of the line, must not be negative. */ private static void toLines( List lines, String line, int indentSize, int lineLength ) { int lineIndent = getIndentLevel( line ); StringBuffer buf = new StringBuffer( 256 ); String[] tokens = line.split( " +" ); for ( int i = 0; i < tokens.length; i++ ) { String token = tokens[i]; if ( i > 0 ) { if ( buf.length() + token.length() >= lineLength ) { lines.add( buf.toString() ); buf.setLength( 0 ); buf.append( repeat( " ", lineIndent * indentSize ) ); } else { buf.append( ' ' ); } } for ( int j = 0; j < token.length(); j++ ) { char c = token.charAt( j ); if ( c == '\t' ) { buf.append( repeat( " ", indentSize - buf.length() % indentSize ) ); } else if ( c == '\u00A0' ) { buf.append( ' ' ); } else { buf.append( c ); } } } lines.add( buf.toString() ); } /** * Gets the indentation level of the specified line. * * @param line The line whose indentation level should be retrieved, must not be null. * @return The indentation level of the line. */ private static int getIndentLevel( String line ) { int level = 0; for ( int i = 0; i < line.length() && line.charAt( i ) == '\t'; i++ ) { level++; } for ( int i = level + 1; i <= level + 4 && i < line.length(); i++ ) { if ( line.charAt( i ) == '\t' ) { level++; break; } } return level; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy