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

com.jayway.maven.plugins.android.standalonemojos.HelpMojo Maven / Gradle / Ivy

There is a newer version: 4.0.0-rc.2
Show newest version
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 android-maven-plugin.
Call
  mvn android:help -Ddetail=true -Dgoal=<goal-name>
to display parameter details. * * @version generated on Mon Oct 10 19:50:18 CEST 2011 * @author org.apache.maven.tools.plugin.generator.PluginHelpGenerator (version 2.8) * @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:android-maven-plugin:3.0.0-alpha-12", 0 ); append( sb, "", 0 ); append( sb, "Android Maven Plugin - android-maven-plugin", 0 ); append( sb, "Maven Plugin for Android Development", 1 ); append( sb, "", 0 ); if ( goal == null || goal.length() <= 0 ) { append( sb, "This plugin has 22 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\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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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, "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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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, "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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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, "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, "dex", 2 ); append( sb, "Configuration for the dex command execution. It can be configured in the plugin configuration like so\n\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0-Xms256m\n\u00a0\u00a0\u00a0\u00a0-Xmx512m\n\u00a0\u00a0\n\u00a0\u00a0true|false\n\u00a0\u00a0true|false\n\u00a0\u00a0true|false\n\nor via properties dex.* or command line parameters android.dex.*", 3 ); append( sb, "", 0 ); append( sb, "dexCoreLibrary (Default: false)", 2 ); append( sb, "Decides whether to pass the --core-library flag to dx.", 3 ); append( sb, "Expression: ${android.dex.coreLibrary}", 3 ); append( sb, "", 0 ); append( sb, "dexJvmArguments", 2 ); append( sb, "Extra JVM Arguments. Using these you can e.g. increase memory for the jvm running the build.", 3 ); append( sb, "Expression: ${android.dex.jvmArguments}", 3 ); append( sb, "", 0 ); append( sb, "dexNoLocals (Default: false)", 2 ); append( sb, "Decides whether to pass the --no-locals flag to dx.", 3 ); append( sb, "Expression: ${android.dex.noLocals}", 3 ); append( sb, "", 0 ); append( sb, "dexOptimize (Default: true)", 2 ); append( sb, "Decides whether to pass the --no-optimize flag to dx.", 3 ); append( sb, "Expression: ${android.dex.optimize}", 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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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, "Configuration for the emulator goals. Either use the plugin configuration like this\n\n\u00a0\u00a0Default\n\u00a0\u00a020000\n\u00a0\u00a0-no-skin\n\nor configure as properties on the command line as android.emulator.avd, android.emulator.wait and android.emulator.options or in pom or settings file as emulator.avd, emulator.wait and emulator.options.", 3 ); append( sb, "", 0 ); append( sb, "emulatorAvd", 2 ); append( sb, "Name of the Android Virtual Device (emulatorAvd) that will be started by the emulator. Default value is \'Default\'", 3 ); append( sb, "Expression: ${android.emulator.avd}", 3 ); append( sb, "", 0 ); append( sb, "emulatorOptions", 2 ); append( sb, "Additional command line options for the emulator start up. This option can be used to pass any additional options desired to the invocation of the emulator. Use emulator -help for more details. An example would be \'-no-skin\'.", 3 ); append( sb, "Expression: ${android.emulator.options}", 3 ); append( sb, "", 0 ); append( sb, "emulatorWait", 2 ); append( sb, "Wait time for the emulator start up.", 3 ); append( sb, "Expression: ${android.emulator.wait}", 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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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, "Configuration for the emulator goals. Either use the plugin configuration like this\n\n\u00a0\u00a0Default\n\u00a0\u00a020000\n\u00a0\u00a0-no-skin\n\nor configure as properties on the command line as android.emulator.avd, android.emulator.wait and android.emulator.options or in pom or settings file as emulator.avd, emulator.wait and emulator.options.", 3 ); append( sb, "", 0 ); append( sb, "emulatorAvd", 2 ); append( sb, "Name of the Android Virtual Device (emulatorAvd) that will be started by the emulator. Default value is \'Default\'", 3 ); append( sb, "Expression: ${android.emulator.avd}", 3 ); append( sb, "", 0 ); append( sb, "emulatorOptions", 2 ); append( sb, "Additional command line options for the emulator start up. This option can be used to pass any additional options desired to the invocation of the emulator. Use emulator -help for more details. An example would be \'-no-skin\'.", 3 ); append( sb, "Expression: ${android.emulator.options}", 3 ); append( sb, "", 0 ); append( sb, "emulatorWait", 2 ); append( sb, "Wait time for the emulator start up.", 3 ); append( sb, "Expression: ${android.emulator.wait}", 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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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-all".equals( goal ) ) { append( sb, "android:emulator-stop-all", 0 ); append( sb, "EmulatorStopeAllMojo will stop all attached devices.", 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, "Configuration for the emulator goals. Either use the plugin configuration like this\n\n\u00a0\u00a0Default\n\u00a0\u00a020000\n\u00a0\u00a0-no-skin\n\nor configure as properties on the command line as android.emulator.avd, android.emulator.wait and android.emulator.options or in pom or settings file as emulator.avd, emulator.wait and emulator.options.", 3 ); append( sb, "", 0 ); append( sb, "emulatorAvd", 2 ); append( sb, "Name of the Android Virtual Device (emulatorAvd) that will be started by the emulator. Default value is \'Default\'", 3 ); append( sb, "Expression: ${android.emulator.avd}", 3 ); append( sb, "", 0 ); append( sb, "emulatorOptions", 2 ); append( sb, "Additional command line options for the emulator start up. This option can be used to pass any additional options desired to the invocation of the emulator. Use emulator -help for more details. An example would be \'-no-skin\'.", 3 ); append( sb, "Expression: ${android.emulator.options}", 3 ); append( sb, "", 0 ); append( sb, "emulatorWait", 2 ); append( sb, "Wait time for the emulator start up.", 3 ); append( sb, "Expression: ${android.emulator.wait}", 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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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 android-maven-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, "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, "test", 2 ); append( sb, "The configuration to use for running instrumentation tests. Complete configuration is possible in the plugin configuration:\n\n\u00a0\u00a0true|false|auto\n\u00a0\u00a0packageName\n\u00a0\u00a0className\n\u00a0\u00a0true|false\n\u00a0\u00a0true|false\n\u00a0\u00a0true|false\u00a0\u00a0avd\n\u00a0\u00a0small|medium|large\n\u00a0\u00a0true|false\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass\n\u00a0\u00a0\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0your.package.name\n\u00a0\u00a0\n\n", 3 ); append( sb, "", 0 ); append( sb, "testClasses", 2 ); append( sb, "Whether to execute test classes which are specified as part of the instrumentation tests.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass\n\nor as e.g. -Dandroid.test.classes=class1,class2", 3 ); append( sb, "Expression: ${android.test.classes}", 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_manufacturer_model. The serial number is commonly emulator-5554 for the first emulator started with numbers increasing. avdName is as defined in the SDK tool. The manufacturer is typically \'unknown\' and the model is typically \'sdk\'. The deviceid for an actual devices is deviceSerialNumber_manufacturer_model.\n\nThe file contains system properties from the system running the Android Maven 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, "testInstrumentationPackage", 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, "testInstrumentationRunner", 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, "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 as part of the instrumentation tests.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name\n\nor as e.g. -Dandroid.test.packages=package1,package2", 3 ); append( sb, "Expression: ${android.test.packages}", 3 ); append( sb, "", 0 ); append( sb, "testSkip (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.test.skip}", 3 ); append( sb, "", 0 ); append( sb, "testTestSize", 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\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\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, "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, "test", 2 ); append( sb, "The configuration to use for running instrumentation tests. Complete configuration is possible in the plugin configuration:\n\n\u00a0\u00a0true|false|auto\n\u00a0\u00a0packageName\n\u00a0\u00a0className\n\u00a0\u00a0true|false\n\u00a0\u00a0true|false\n\u00a0\u00a0true|false\u00a0\u00a0avd\n\u00a0\u00a0small|medium|large\n\u00a0\u00a0true|false\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass\n\u00a0\u00a0\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0your.package.name\n\u00a0\u00a0\n\n", 3 ); append( sb, "", 0 ); append( sb, "testClasses", 2 ); append( sb, "Whether to execute test classes which are specified as part of the instrumentation tests.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass\n\nor as e.g. -Dandroid.test.classes=class1,class2", 3 ); append( sb, "Expression: ${android.test.classes}", 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_manufacturer_model. The serial number is commonly emulator-5554 for the first emulator started with numbers increasing. avdName is as defined in the SDK tool. The manufacturer is typically \'unknown\' and the model is typically \'sdk\'. The deviceid for an actual devices is deviceSerialNumber_manufacturer_model.\n\nThe file contains system properties from the system running the Android Maven 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, "testInstrumentationPackage", 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, "testInstrumentationRunner", 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, "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 as part of the instrumentation tests.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name\n\nor as e.g. -Dandroid.test.packages=package1,package2", 3 ); append( sb, "Expression: ${android.test.packages}", 3 ); append( sb, "", 0 ); append( sb, "testSkip (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.test.skip}", 3 ); append( sb, "", 0 ); append( sb, "testTestSize", 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\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\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, "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, "test", 2 ); append( sb, "The configuration to use for running instrumentation tests. Complete configuration is possible in the plugin configuration:\n\n\u00a0\u00a0true|false|auto\n\u00a0\u00a0packageName\n\u00a0\u00a0className\n\u00a0\u00a0true|false\n\u00a0\u00a0true|false\n\u00a0\u00a0true|false\u00a0\u00a0avd\n\u00a0\u00a0small|medium|large\n\u00a0\u00a0true|false\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass\n\u00a0\u00a0\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0your.package.name\n\u00a0\u00a0\n\n", 3 ); append( sb, "", 0 ); append( sb, "testClasses", 2 ); append( sb, "Whether to execute test classes which are specified as part of the instrumentation tests.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name.YourTestClass\n\nor as e.g. -Dandroid.test.classes=class1,class2", 3 ); append( sb, "Expression: ${android.test.classes}", 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_manufacturer_model. The serial number is commonly emulator-5554 for the first emulator started with numbers increasing. avdName is as defined in the SDK tool. The manufacturer is typically \'unknown\' and the model is typically \'sdk\'. The deviceid for an actual devices is deviceSerialNumber_manufacturer_model.\n\nThe file contains system properties from the system running the Android Maven 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, "testInstrumentationPackage", 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, "testInstrumentationRunner", 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, "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 as part of the instrumentation tests.\n\n\n\u00a0\u00a0\u00a0\u00a0your.package.name\n\nor as e.g. -Dandroid.test.packages=package1,package2", 3 ); append( sb, "Expression: ${android.test.packages}", 3 ); append( sb, "", 0 ); append( sb, "testSkip (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.test.skip}", 3 ); append( sb, "", 0 ); append( sb, "testTestSize", 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\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\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 || "manifest-update".equals( goal ) ) { append( sb, "android:manifest-update", 0 ); append( sb, "Updates various version attributes present in the AndroidManifest.xml file.", 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, "manifest", 2 ); append( sb, "Configuration for the manifest-update goal.\nYou can configure this mojo to update the following manifest attributes:\n\nandroid:versionName on the manifest element. android:versionCode on the manifest element. android:sharedUserId on the manifest element. android:debuggable on the application element.\n\nNote: This process will reformat the AndroidManifest.xml per JAXP Transformer defaults if updates are made to the manifest.\n\nYou can configure attributes in the plugin configuration like so\n\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0com.jayway.maven.plugins.android.generation2\n\u00a0\u00a0\u00a0\u00a0android-maven-plugin\n\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0update-manifest\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0manifest-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\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0123\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0true|false\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0true|false\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0anId\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0true|false\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\nor use properties set in the pom or settings file or supplied as command line parameter. Add \'android.\' in front of the property name for command line usage. All parameters follow a manifest.* naming convention.", 3 ); append( sb, "", 0 ); append( sb, "manifestDebuggable", 2 ); append( sb, "Update the android:debuggable attribute with the specified parameter.", 3 ); append( sb, "Expression: ${android.manifest.debuggable}", 3 ); append( sb, "", 0 ); append( sb, "manifestSharedUserId", 2 ); append( sb, "Update the android:sharedUserId attribute with the specified parameter.", 3 ); append( sb, "Expression: ${android.manifest.sharedUserId}", 3 ); append( sb, "", 0 ); append( sb, "manifestVersionCode", 2 ); append( sb, "Update the android:versionCode attribute with the specified parameter.", 3 ); append( sb, "Expression: ${android.manifest.versionCode}", 3 ); append( sb, "", 0 ); append( sb, "manifestVersionCodeAutoIncrement (Default: false)", 2 ); append( sb, "Auto increment the android:versionCode attribute with each build.", 3 ); append( sb, "Expression: ${android.manifest.versionCodeAutoIncrement}", 3 ); append( sb, "", 0 ); append( sb, "manifestVersionCodeUpdateFromVersion", 2 ); append( sb, "Update the android:versionCode attribute automatically from the project version e.g 3.0.1 will become version code 301. As described in this blog post http://www.simpligility.com/2010/11/release-version-management-for-your-android-application/ but done without using resource filtering.", 3 ); append( sb, "Expression: ${android.manifest.versionCodeUpdateFromVersion} default-value=", 3 ); append( sb, "", 0 ); append( sb, "manifestVersionName (Default: ${project.version})", 2 ); append( sb, "Update the android:versionName with the specified parameter. If left empty it will use the version number of the project.", 3 ); append( sb, "Expression: ${android.manifest.versionName}", 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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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 or directory 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, "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, "pull", 2 ); append( sb, "The configuration for the pull goal can be set up in the plugin configuration in the pom file as:\n\n\n\u00a0\u00a0\u00a0\u00a0path\n\u00a0\u00a0\u00a0\u00a0path\n\n\nThe parameters can also be configured as property in the pom or settings file\n\n\n\u00a0\u00a0\u00a0\u00a0pathondevice\n\u00a0\u00a0\u00a0\u00a0path\n\nor from command-line with parameter -Dandroid.pull.source=path and -Dandroid.pull.destination=path.\n\n", 3 ); append( sb, "", 0 ); append( sb, "pullDestination", 2 ); append( sb, "The path of the destination to copy the file to. If destination ends with File.separator, it is supposed to be a directory. Therefore the source - whether it refers to a file or directory - will be copied into the destination directory. If destination does not end with File.separator, the last path segment will be assumed as the new file or directory name (depending on the type of source). Any missing directories will be created.", 3 ); append( sb, "Required: Yes", 3 ); append( sb, "Expression: ${android.pull.destination}", 3 ); append( sb, "", 0 ); append( sb, "pullSource", 2 ); append( sb, "The path of the source file or directory on the emulator/device.", 3 ); append( sb, "Required: Yes", 3 ); append( sb, "Expression: ${android.pull.source}", 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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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, "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, "push", 2 ); append( sb, "The configuration for the push goal can be set up in the plugin configuration in the pom file as:\n\n\n\u00a0\u00a0\u00a0\u00a0path\n\u00a0\u00a0\u00a0\u00a0path\n\n\nThe parameters can also be configured as property in the pom or settings file\n\n\n\u00a0\u00a0\u00a0\u00a0pathondevice\n\u00a0\u00a0\u00a0\u00a0path\n\nor from command-line with parameter -Dandroid.push.source=path and -Dandroid.push.destination=path.\n\n", 3 ); append( sb, "", 0 ); append( sb, "pushDestination", 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. This works analogous if the source is a directory.", 3 ); append( sb, "Required: Yes", 3 ); append( sb, "Expression: ${android.push.destination}", 3 ); append( sb, "", 0 ); append( sb, "pushSource", 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. If you specify a directory, all containing files will be pushed recursively.", 3 ); append( sb, "Required: Yes", 3 ); append( sb, "Expression: ${android.push.source}", 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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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, "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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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, "run", 2 ); append( sb, "The configuration for the run goal can be set up in the plugin configuration in the pom file as:\n\n\n\u00a0\u00a0\u00a0\u00a0true\n\n\nThe parameter is optional and defaults to false.\n\nThe debug parameter can also be configured as property in the pom or settings file\n\n\n\u00a0\u00a0\u00a0\u00a0true\n\nor from command-line with parameter -Dandroid.run.debug=true.\n\n", 3 ); append( sb, "", 0 ); append( sb, "runDebug (Default: false)", 2 ); append( sb, "Debug parameter for the the run goal. If true, the device or emulator will pause execution of the process at startup to wait for a debugger to connect. Also see the \'run\' parameter documentation.", 3 ); append( sb, "Expression: ${android.run.debug}", 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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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 || "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, "undeployBeforeDeploy (Default: false)", 2 ); append( sb, "Whether to undeploy an apk from the device before deploying it.\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\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 configuration for the zipalign goal. 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 as plugin configuration.\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\nValues can also be configured as properties on the command line as android.zipalign.* or in pom or settings file as properties like zipalign.*.", 3 ); append( sb, "", 0 ); append( sb, "zipalignInputApk", 2 ); append( sb, "The apk file to be zipaligned. Per default the file is taken from build directory (target normally) using the build final name as file name and apk as extension.", 3 ); append( sb, "Expression: ${android.zipalign.inputApk}", 3 ); append( sb, "", 0 ); append( sb, "zipalignOutputApk", 2 ); append( sb, "The apk file produced by the zipalign goal. Per default the file is placed into the build directory (target normally) using the build final name appended with \'-aligned\' as file name and apk as extension.", 3 ); append( sb, "Expression: ${android.zipalign.outputApk}", 3 ); append( sb, "", 0 ); append( sb, "zipalignSkip", 2 ); append( sb, "Skip the zipalign goal execution.", 3 ); append( sb, "Expression: ${android.zipalign.skip}", 3 ); append( sb, "", 0 ); append( sb, "zipalignVerbose", 2 ); append( sb, "Activate verbose output for the zipalign goal execution.", 3 ); append( sb, "Expression: ${android.zipalign.verbose}", 3 ); append( sb, "", 0 ); } } if ( getLog().isInfoEnabled() ) { getLog().info( sb.toString() ); } } /** *

Repeat a String n times to form a new string.

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy