com.jayway.maven.plugins.android.standalonemojos.HelpMojo Maven / Gradle / Ivy
package com.jayway.maven.plugins.android.standalonemojos;
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-android-plugin.
Call mvn android:help -Ddetail=true -Dgoal=<goal-name>
to display parameter details.
*
* @version generated on Tue Aug 30 12:18:00 CEST 2011
* @author org.apache.maven.tools.plugin.generator.PluginHelpGenerator (version 2.7)
* @goal help
* @requiresProject false
* @threadSafe
*/
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, "com.jayway.maven.plugins.android.generation2:maven-android-plugin:3.0.0-alpha-5", 0 );
append( sb, "", 0 );
append( sb, "Maven Android Plugin - maven-android-plugin", 0 );
append( sb, "Maven Plugin for Android", 1 );
append( sb, "", 0 );
if ( goal == null || goal.length() <= 0 )
{
append( sb, "This plugin has 21 goals:", 0 );
append( sb, "", 0 );
}
if ( goal == null || goal.length() <= 0 || "apk".equals( goal ) )
{
append( sb, "android:apk", 0 );
append( sb, "Creates the apk file. By default signs it with debug keystore.\nChange that by setting configuration parameter false .", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "classifier", 2 );
append( sb, "Classifier to add to the artifact generated. If given, the artifact will be an attachment instead.\n", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "extractDuplicates (Default: false)", 2 );
append( sb, "Allows to detect and extract the duplicate files from embedded jars. In that case, the plugin analyzes the content of all embedded dependencies and checks they are no duplicates inside those dependencies. Indeed, Android does not support duplicates, and all dependencies are inlined in the APK. If duplicates files are found, the resource is kept in the first dependency and removes from others.\n", 3 );
append( sb, "Expression: ${android.extractDuplicates}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDependenciesHardwareArchitectureDefault (Default: armeabi)", 2 );
append( sb, "Default hardware architecture for native library dependencies (with <type>so</type>).\n\nThis value is used for dependencies without classifier, if nativeLibrariesDependenciesHardwareArchitectureOverride is not set.\n\nValid values currently include armeabi and armeabi-v7a.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDependenciesHardwareArchitectureDefault}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDependenciesHardwareArchitectureOverride", 2 );
append( sb, "Override hardware architecture for native library dependencies (with <type>so</type>).\n\nThis overrides any classifier on native library dependencies, and any nativeLibrariesDependenciesHardwareArchitectureDefault.\n\nValid values currently include armeabi and armeabi-v7a.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDependenciesHardwareArchitectureOverride}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "renameInstrumentationTargetPackage", 2 );
append( sb, "Rewrite the manifest so that all of its instrumentation components target the given package. This value will be passed on to the aapt parameter --rename-instrumentation-target-package. Look to aapt for more help on this.\n", 3 );
append( sb, "Expression: ${android.renameInstrumentationTargetPackage}", 3 );
append( sb, "", 0 );
append( sb, "renameManifestPackage", 2 );
append( sb, "A possibly new package name for the application. This value will be passed on to the aapt parameter --rename-manifest-package. Look to aapt for more help on this.\n", 3 );
append( sb, "Expression: ${android.renameManifestPackage}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "sign", 2 );
append( sb, "How to sign the apk.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0auto \n \n\nValid values for are:\n\n-\ttrue = sign with the debug keystore.\n-\tfalse = don\'t sign with the debug keystore.\n-\tboth = create a signed as well as an unsigned apk.\n-\tauto (default) = sign with debug keystore, unless another keystore is defined. (Signing with other keystores is not yet implemented. See Issue 2.)\n\n\n\nCan also be configured from command-line with parameter -Dandroid.sign.debug.\n", 3 );
append( sb, "", 0 );
append( sb, "sourceDirectories", 2 );
append( sb, "Additional source directories that contain resources to be packaged into the apk.\n\nThese are not source directories, that contain java classes to be compiled. It corresponds to the -df option of the apkbuilder program. It allows you to specify directories, that contain additional resources to be packaged into the apk.\nSo an example inside the plugin configuration could be:\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0...\n\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0${project.basedir}/additionals \n\u00a0\u00a0 \n\u00a0\u00a0...\n \n", 3 );
append( sb, "Expression: ${android.sourceDirectories}", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "apklib".equals( goal ) )
{
append( sb, "android:apklib", 0 );
append( sb, "Creates the apklib file.\napklib files do not generate deployable artifacts.", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "deploy".equals( goal ) )
{
append( sb, "android:deploy", 0 );
append( sb, "Deploys the built apk file, or another specified apk, to a connected device.\nAutomatically performed when running mvn integration-test (or mvn install) on a project with instrumentation tests.", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "enableIntegrationTest (Default: auto)", 2 );
append( sb, "Enables or disables integration test related goals. If true they will be run; if false, they will be skipped. If auto, they will run if any of the classes inherit from any class in junit.framework.** or android.test.**.", 3 );
append( sb, "Expression: ${android.enableIntegrationTest}", 3 );
append( sb, "", 0 );
append( sb, "file", 2 );
append( sb, "Optionally used to specify a different apk file to deploy to a connected emulator or usb device, instead of the built apk from this project.", 3 );
append( sb, "Expression: ${android.file}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "deploy-dependencies".equals( goal ) )
{
append( sb, "android:deploy-dependencies", 0 );
append( sb, "Deploys all directly declared dependencies of apk in this project\'s pom.\nUsually used in a project with instrumentation tests, to deploy the apk to test onto the device before running the deploying and running the instrumentation tests apk.\nAutomatically performed when running mvn integration-test (or mvn install) on a project with instrumentation tests.", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "enableIntegrationTest (Default: auto)", 2 );
append( sb, "Enables or disables integration test related goals. If true they will be run; if false, they will be skipped. If auto, they will run if any of the classes inherit from any class in junit.framework.** or android.test.**.", 3 );
append( sb, "Expression: ${android.enableIntegrationTest}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "dex".equals( goal ) )
{
append( sb, "android:dex", 0 );
append( sb, "Converts compiled Java classes to the Android dex format.", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "coreLibrary (Default: false)", 2 );
append( sb, "Decides whether to pass the --core-library flag to dx.", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "jvmArguments", 2 );
append( sb, "Extra JVM Arguments. Using these you can e.g. increase memory for the jvm running the build.\n\n\u00a0\u00a0-Xms256m \n\u00a0\u00a0-Xmx512m \n \n", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "noLocals (Default: false)", 2 );
append( sb, "Decides whether to pass the --no-locals flag to dx.", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "emulator-start".equals( goal ) )
{
append( sb, "android:emulator-start", 0 );
append( sb, "EmulatorStartMojo can start the Android Emulator with a specified Android Virtual Device (avd).", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "emulator", 2 );
append( sb, "The Android emulator configuration to use. All values are optional. Default 20000 -no-skin ", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "emulator-stop".equals( goal ) )
{
append( sb, "android:emulator-stop", 0 );
append( sb, "EmulatorStartMojo can stop the Android Emulator with a specified Android Virtual Device (avd).", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "emulator", 2 );
append( sb, "The Android emulator configuration to use. All values are optional. Default 20000 -no-skin ", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "generate-sources".equals( goal ) )
{
append( sb, "android:generate-sources", 0 );
append( sb, "Generates R.java based on resources specified by the resources configuration parameter.\nGenerates java files based on aidl files.\n\n", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "genDirectory (Default: ${project.build.directory}/generated-sources/r)", 2 );
append( sb, "Override default generated folder", 3 );
append( sb, "Expression: ${android.genDirectory}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "help".equals( goal ) )
{
append( sb, "android:help", 0 );
append( sb, "Display help information on maven-android-plugin.\nCall\n\u00a0\u00a0mvn\u00a0android: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, "Expression: ${detail}", 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, "Expression: ${goal}", 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, "Expression: ${indentSize}", 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, "Expression: ${lineLength}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "instrument".equals( goal ) )
{
append( sb, "android:instrument", 0 );
append( sb, "Runs the instrumentation apk on device.", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "enableIntegrationTest (Default: auto)", 2 );
append( sb, "Enables or disables integration test related goals. If true they will be run; if false, they will be skipped. If auto, they will run if any of the classes inherit from any class in junit.framework.** or android.test.**.", 3 );
append( sb, "Expression: ${android.enableIntegrationTest}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "instrumentationPackage", 2 );
append( sb, "Package name of the apk we wish to instrument. If not specified, it is inferred from AndroidManifest.xml.", 3 );
append( sb, "Expression: ${android.test.instrumentationPackage}", 3 );
append( sb, "", 0 );
append( sb, "instrumentationRunner", 2 );
append( sb, "Class name of test runner. If not specified, it is inferred from AndroidManifest.xml.", 3 );
append( sb, "Expression: ${android.test.instrumentationRunner}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testCoverage (Default: false)", 2 );
append( sb, "Enable or disable code coverage for this instrumentation test run.", 3 );
append( sb, "Expression: ${android.test.coverage}", 3 );
append( sb, "", 0 );
append( sb, "testCreateReport (Default: true)", 2 );
append( sb, "Create a junit xml format compatible output file containing the test results for each device the instrumentation tests run on.\n\nThe files are stored in target/surefire-reports and named TEST-deviceid.xml. The deviceid for an emulator is deviceSerialNumber_avdName. The serial number is commonly emulator-5554 for the first emulator started with numbers increasing. The deviceid for an actual devices is deviceSerialNumber_manufacturer_model.\n\nThe file contains system properties from the system running the Maven Android Plugin (JVM) and device properties from the device/emulator the tests are running on.\n\nThe file contains a single TestSuite for all tests and a TestCase for each test method. Errors and failures are logged in the file and the system log with full stack traces and other details available.", 3 );
append( sb, "Expression: ${android.test.createreport}", 3 );
append( sb, "", 0 );
append( sb, "testDebug (Default: false)", 2 );
append( sb, "Enable debug causing the test runner to wait until debugger is connected with the Android debug bridge (adb).", 3 );
append( sb, "Expression: ${android.test.debug}", 3 );
append( sb, "", 0 );
append( sb, "testLogOnly (Default: false)", 2 );
append( sb, "Enable this flag to run a log only and not execute the tests.", 3 );
append( sb, "Expression: ${android.test.logonly}", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "testSize", 2 );
append( sb, "If specified only execute tests of certain size as defined by the Android instrumentation testing SmallTest, MediumTest and LargeTest annotations. Use \'small\', \'medium\' or \'large\' as values.", 3 );
append( sb, "Expression: ${android.test.testsize}", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "internal-integration-test".equals( goal ) )
{
append( sb, "android:internal-integration-test", 0 );
append( sb, "Internal. Do not use.\nCalled automatically when the lifecycle reaches phase integration-test. Figures out whether to call goals in this phase; and if so, calls android:instrument.", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "enableIntegrationTest (Default: auto)", 2 );
append( sb, "Enables or disables integration test related goals. If true they will be run; if false, they will be skipped. If auto, they will run if any of the classes inherit from any class in junit.framework.** or android.test.**.", 3 );
append( sb, "Expression: ${android.enableIntegrationTest}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "instrumentationPackage", 2 );
append( sb, "Package name of the apk we wish to instrument. If not specified, it is inferred from AndroidManifest.xml.", 3 );
append( sb, "Expression: ${android.test.instrumentationPackage}", 3 );
append( sb, "", 0 );
append( sb, "instrumentationRunner", 2 );
append( sb, "Class name of test runner. If not specified, it is inferred from AndroidManifest.xml.", 3 );
append( sb, "Expression: ${android.test.instrumentationRunner}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testCoverage (Default: false)", 2 );
append( sb, "Enable or disable code coverage for this instrumentation test run.", 3 );
append( sb, "Expression: ${android.test.coverage}", 3 );
append( sb, "", 0 );
append( sb, "testCreateReport (Default: true)", 2 );
append( sb, "Create a junit xml format compatible output file containing the test results for each device the instrumentation tests run on.\n\nThe files are stored in target/surefire-reports and named TEST-deviceid.xml. The deviceid for an emulator is deviceSerialNumber_avdName. The serial number is commonly emulator-5554 for the first emulator started with numbers increasing. The deviceid for an actual devices is deviceSerialNumber_manufacturer_model.\n\nThe file contains system properties from the system running the Maven Android Plugin (JVM) and device properties from the device/emulator the tests are running on.\n\nThe file contains a single TestSuite for all tests and a TestCase for each test method. Errors and failures are logged in the file and the system log with full stack traces and other details available.", 3 );
append( sb, "Expression: ${android.test.createreport}", 3 );
append( sb, "", 0 );
append( sb, "testDebug (Default: false)", 2 );
append( sb, "Enable debug causing the test runner to wait until debugger is connected with the Android debug bridge (adb).", 3 );
append( sb, "Expression: ${android.test.debug}", 3 );
append( sb, "", 0 );
append( sb, "testLogOnly (Default: false)", 2 );
append( sb, "Enable this flag to run a log only and not execute the tests.", 3 );
append( sb, "Expression: ${android.test.logonly}", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "testSize", 2 );
append( sb, "If specified only execute tests of certain size as defined by the Android instrumentation testing SmallTest, MediumTest and LargeTest annotations. Use \'small\', \'medium\' or \'large\' as values.", 3 );
append( sb, "Expression: ${android.test.testsize}", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "internal-pre-integration-test".equals( goal ) )
{
append( sb, "android:internal-pre-integration-test", 0 );
append( sb, "Internal. Do not use.\nCalled automatically when the lifecycle reaches phase pre-integration-test. Figures out whether to call goals in this phase; and if so, calls android:deploy-dependencies and android:deploy.", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "enableIntegrationTest (Default: auto)", 2 );
append( sb, "Enables or disables integration test related goals. If true they will be run; if false, they will be skipped. If auto, they will run if any of the classes inherit from any class in junit.framework.** or android.test.**.", 3 );
append( sb, "Expression: ${android.enableIntegrationTest}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "ndk-build".equals( goal ) )
{
append( sb, "android:ndk-build", 0 );
append( sb, "(no description available)", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachNativeArtifacts", 2 );
append( sb, "Flag indicating whether the resulting native library should be attached as an artifact to the build. This means the resulting .so is installed into the repository as well as being included in the final APK.", 3 );
append( sb, "Expression: ${android.ndk.build.attach-native-artifact}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "clearNativeArtifacts", 2 );
append( sb, "Flag indicating whether the NDK output directory (libs/) should be cleared after build. This will essentially \'move\' all the native artifacts (.so) to the ${project.build.directory}/libs/. If an APK is built as part of the invocation, the libraries will be included from here.", 3 );
append( sb, "Expression: ${android.ndk.build.clear-native-artifacts}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Folder containing native libraries compiled and linked by the NDK.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "ndk", 2 );
append( sb, "The Android NDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-ndk-r4 \n \n\nThe parameter is optional. The default is the setting of the ANDROID_NDK_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_NDK_HOME} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameter -Dandroid.ndk.path.\n", 3 );
append( sb, "", 0 );
append( sb, "ndkArchitecture", 2 );
append( sb, "Defines the architecture for the NDK build", 3 );
append( sb, "Expression: ${android.ndk.build.architecture}", 3 );
append( sb, "", 0 );
append( sb, "ndkBuildAdditionalCommandline", 2 );
append( sb, "Specifies additional command line parameters to pass to ndk-build", 3 );
append( sb, "Expression: ${android.ndk.build.command-line}", 3 );
append( sb, "", 0 );
append( sb, "ndkClassifier", 2 );
append( sb, "Specifies the classifier with which the artifact should be stored in the repository", 3 );
append( sb, "Expression: ${android.ndk.build.native-classifier}", 3 );
append( sb, "", 0 );
append( sb, "ndkOutputDirectory (Default: ${project.build.directory}/ndk-libs)", 2 );
append( sb, "Build folder to place built native libraries into", 3 );
append( sb, "Expression: ${android.ndk.build.ndk-output-directory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "pull".equals( goal ) )
{
append( sb, "android:pull", 0 );
append( sb, "Copy file from all the attached (or specified) devices/emulators.", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "destination", 2 );
append( sb, "The path of the destination to copy the file to. If this is a directory the original file name will be used. Otherwise the new filename will override the source one. If the destination directory is missing it will be created. There is some ambiguity if the destination is missing as to whether it is a file or directory. The directory will be extracted using FilenameUtils.getFullPath() from the Commons IO library (see @see \'http://commons.apache.org/io/apidocs/ org/apache/commons/io/FilenameUtils.html#getFullPath (java.lang.String)\' For example: /a/b/c will test and create /a/b/ /a/b/c.txt will test and create /a/b/ /a/b/c/ will test and create /a/b/c/", 3 );
append( sb, "Required: Yes", 3 );
append( sb, "Expression: ${android.pull.destination}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "source", 2 );
append( sb, "The path of the source file on the emulator/device.", 3 );
append( sb, "Required: Yes", 3 );
append( sb, "Expression: ${android.pull.source}", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "push".equals( goal ) )
{
append( sb, "android:push", 0 );
append( sb, "Copy file to all the attached (or specified) devices/emulators.", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "destination", 2 );
append( sb, "The destination file name as absolute path on the emulator or device. If the last character is a \'/\' it will be assumed that the original base filename should be preserved and a target directory is specified.", 3 );
append( sb, "Required: Yes", 3 );
append( sb, "Expression: ${android.push.destination}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "source", 2 );
append( sb, "The file name of the local filesystem file to push to the emulator or device either as absolute path or relative to the execution folder.", 3 );
append( sb, "Required: Yes", 3 );
append( sb, "Expression: ${android.push.source}", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "redeploy".equals( goal ) )
{
append( sb, "android:redeploy", 0 );
append( sb, "Redeploys the built apk file, or another specified apk, to a connected device. This simply tries to undeploy the APK and re-deploy it.", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "enableIntegrationTest (Default: auto)", 2 );
append( sb, "Enables or disables integration test related goals. If true they will be run; if false, they will be skipped. If auto, they will run if any of the classes inherit from any class in junit.framework.** or android.test.**.", 3 );
append( sb, "Expression: ${android.enableIntegrationTest}", 3 );
append( sb, "", 0 );
append( sb, "file", 2 );
append( sb, "Optionally used to specify a different apk file to deploy to a connected emulator or usb device, instead of the built apk from this project.", 3 );
append( sb, "Expression: ${android.file}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "run".equals( goal ) )
{
append( sb, "android:run", 0 );
append( sb, "Runs the first Activity shown in the top-level launcher as determined by its Intent filters.\nAndroid provides a component-based architecture, which means that there is no \'main\' function which serves as an entry point to the APK. There\'s an homogeneous collection of Activity(es), Service(s), Receiver(s), etc.\n\nThe Android top-level launcher (whose purpose is to allow users to launch other applications) uses the Intent resolution mechanism to determine which Activity(es) to show to the end user. Such activities are identified by at least:\n\n-\tAction type: android.intent.action.MAIN\n-\tCategory: android.intent.category.LAUNCHER\n\n\n\nAnd are declared in AndroidManifest.xml as such:\n\n\n\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0 \n \n\nThis Mojo will try to to launch the first activity of this kind found in AndroidManifest.xml. In case multiple activities satisfy the requirements listed above only the first declared one is run. In case there are no \'Launcher activities\' declared in the manifest or no activities declared at all, this goal aborts throwing an error.\n\nThe device parameter is taken into consideration so potentially the Activity found is started on all attached devices. The application will NOT be deployed and running will silently fail if the application is not deployed.\n", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "undeploy".equals( goal ) )
{
append( sb, "android:undeploy", 0 );
append( sb, "Undeploys the built apk file, or another specified apk, from a connected device.\n", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "file", 2 );
append( sb, "Optionally used to specify a different apk file to undeploy from a connected emulator or usb device, instead of the built apk from this project.", 3 );
append( sb, "Expression: ${android.file}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "package (Default: null)", 2 );
append( sb, "Optionally used to specify a different apk package to undeploy from a connected emulator or usb device, instead of the built apk from this project.", 3 );
append( sb, "Expression: ${android.package}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "unpack".equals( goal ) )
{
append( sb, "android:unpack", 0 );
append( sb, "unpack library.", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "lazyLibraryUnpack (Default: false)", 2 );
append( sb, "If true, the library will be unpacked only when outputDirectory doesn\'t exist, i.e, a clean build for most cases.", 3 );
append( sb, "Expression: ${android.lazyLibraryUnpack}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "version-update".equals( goal ) )
{
append( sb, "android:version-update", 0 );
append( sb, "Updates various version attributes present in the AndroidManifest.xml file.\nYou can configure this mojo to update the android:versionName attribute automatically to the value present in your project\'s version.\n\nYou can also configure this mojo to auto-increment the android:versionCode attribute on each build as well.\n\nNote: This process might reformat the AndroidManifest.xml per JAXP Transformer defaults.\n\nUpdating Your android:versionName attribute\n\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0com.jayway.maven.plugins.android.generation2 \n\u00a0\u00a0\u00a0\u00a0maven-android-plugin \n\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0update-version \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0version-update \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0true \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0 \n\nAuto-Incrementing your android:versionCode attribute\n\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0com.jayway.maven.plugins.android.generation2 \n\u00a0\u00a0\u00a0\u00a0maven-android-plugin \n\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0update-version \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0version-update \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0true \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0 \n", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
append( sb, "versionCodeAutoIncrement (Default: false)", 2 );
append( sb, "Auto increment the android:versionCode attribute with each build.", 3 );
append( sb, "Expression: ${android.versioncode.autoincrement}", 3 );
append( sb, "", 0 );
append( sb, "versionNameUpdate (Default: true)", 2 );
append( sb, "Update the android:versionName with the value from the maven project.", 3 );
append( sb, "Expression: ${android.versionname.update}", 3 );
append( sb, "", 0 );
}
}
if ( goal == null || goal.length() <= 0 || "zipalign".equals( goal ) )
{
append( sb, "android:zipalign", 0 );
append( sb, "ZipalignMojo can run the zipalign command against the apk.", 1 );
append( sb, "", 0 );
if ( detail )
{
append( sb, "Available parameters:", 1 );
append( sb, "", 0 );
append( sb, "aaptExtraArgs", 2 );
append( sb, "A list of extra arguments that must be passed to aapt.", 3 );
append( sb, "Expression: ${android.aaptExtraArgs}", 3 );
append( sb, "", 0 );
append( sb, "androidManifestFile (Default: ${project.basedir}/AndroidManifest.xml)", 2 );
append( sb, "The AndroidManifest.xml file.", 3 );
append( sb, "", 0 );
append( sb, "assetsDirectory (Default: ${project.basedir}/assets)", 2 );
append( sb, "The android assets directory.", 3 );
append( sb, "", 0 );
append( sb, "attachJar (Default: true)", 2 );
append( sb, "Whether to attach the normal .jar file to the build, so it can be depended on by for example integration-tests which may then access R.java from this project.\n\nOnly disable it if you know you won\'t need it for any integration-tests. Otherwise, leave it enabled.\n", 3 );
append( sb, "Expression: ${android.attachJar}", 3 );
append( sb, "", 0 );
append( sb, "attachSources (Default: false)", 2 );
append( sb, "Whether to attach sources to the build, which can be depended on by other apk projects, for including them in their builds.\n\nEnabling this setting is only required if this project\'s source code and/or res(ources) will be included in other projects, using the Maven tag.\n", 3 );
append( sb, "Expression: ${android.attachSources}", 3 );
append( sb, "", 0 );
append( sb, "configurations", 2 );
append( sb, "A selection of configurations to be included in the APK as a comma separated list. This will limit the configurations for a certain type. For example, specifying hdpi will exclude all resource folders with the mdpi or ldpi modifiers, but won\'t affect language or orientation modifiers. For more information about this option, look in the aapt command line help.", 3 );
append( sb, "Expression: ${android.configurations}", 3 );
append( sb, "", 0 );
append( sb, "customPackage", 2 );
append( sb, "Generates R.java into a different package.", 3 );
append( sb, "Expression: ${android.customPackage}", 3 );
append( sb, "", 0 );
append( sb, "device", 2 );
append( sb, "Specifies which device to connect to, by serial number. Special values \'usb\' and \'emulator\' are also valid, for selecting the only USB connected device or the only running emulator, respectively.", 3 );
append( sb, "Expression: ${android.device}", 3 );
append( sb, "", 0 );
append( sb, "generateApk (Default: true)", 2 );
append( sb, "Decides whether the Apk should be generated or not. If set to false, dx and apkBuilder will not run. This is probably most useful for a project used to generate apk sources to be inherited into another application project.", 3 );
append( sb, "Expression: ${android.generateApk}", 3 );
append( sb, "", 0 );
append( sb, "nativeLibrariesDirectory (Default: ${project.basedir}/libs)", 2 );
append( sb, "Root folder containing native libraries to include in the application package.\n", 3 );
append( sb, "Expression: ${android.nativeLibrariesDirectory}", 3 );
append( sb, "", 0 );
append( sb, "resourceDirectory (Default: ${project.basedir}/res)", 2 );
append( sb, "The android resources directory.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectories", 2 );
append( sb, "The android resources overlay directories. If this is specified, the resourceOverlayDirectory parameter will be ignored.", 3 );
append( sb, "", 0 );
append( sb, "resourceOverlayDirectory (Default: ${project.basedir}/res-overlay)", 2 );
append( sb, "The android resources overlay directory. This will be overriden by resourceOverlayDirectories if present.", 3 );
append( sb, "", 0 );
append( sb, "sdk", 2 );
append( sb, "The Android SDK to use.\n\nLooks like this:\n\n\n\u00a0\u00a0\u00a0\u00a0/opt/android-sdk-linux \n\u00a0\u00a0\u00a0\u00a02.1 \n \n\nThe parameter is optional, and corresponds to the platforms/android-* directories in the Android SDK directory. Default is the latest available version, so you only need to set it if you for example want to use platform 1.5 but also have e.g. 2.2 installed. Has no effect when used on an Android SDK 1.1. The parameter can also be coded as the API level. Therefore valid values are 1.1, 1.5, 1.6, 2.0, 2.01, 2.1, 2,2 as well as 3, 4, 5, 6, 7, 8. If a platform/api level is not installed on the machine an error message will be produced.\n\nThe parameter is optional. The default is the setting of the ANDROID_HOME environment variable. The parameter can be used to override this setting with a different environment variable like this:\n\n\n\u00a0\u00a0\u00a0\u00a0${env.ANDROID_SDK} \n \n\nor just with a hardcoded absolute path. The parameters can also be configured from command-line with parameters -Dandroid.sdk.path and -Dandroid.sdk.platform.\n", 3 );
append( sb, "", 0 );
append( sb, "testClasses", 2 );
append( sb, "Whether to execute test classes which are specified.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass \n \n", 3 );
append( sb, "", 0 );
append( sb, "testPackages", 2 );
append( sb, "Whether to execute tests only in given packages\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name \n \n", 3 );
append( sb, "", 0 );
append( sb, "undeployBeforeDeploy (Default: false)", 2 );
append( sb, "Whether to undeploy an apk from the device before deploying it.\n\n\nOnly has effect when running mvn android:deploy in an Android application project manually, or when running mvn integration-test (or mvn install) in a project with instrumentation tests.\n\n\nIt is useful to keep this set to true at all times, because if an apk with the same package was previously signed with a different keystore, and deployed to the device, deployment will fail becuase your keystore is different.\n", 3 );
append( sb, "Expression: ${android.undeployBeforeDeploy}", 3 );
append( sb, "", 0 );
append( sb, "zipalign", 2 );
append( sb, "The zipalign command configuration to use. As soon as a zipalign goal is invoked the command will be executed unless the skip parameter is set. By default the input file is the apk produced by the build in target. The outputApk will use the postfix -aligned.apk. The following shows a default full configuration of the zipalign goal as an example for changes.\n\n\u00a0\u00a0\u00a0\u00a0false \n\u00a0\u00a0\u00a0\u00a0true \n\u00a0\u00a0\u00a0\u00a0${project.build.directory}/${project.artifactId}.apk \n\u00a0\u00a0\u00a0\u00a0${project.build.directory}/${project.artifactId}-aligned.apk \n \n", 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;
}
}