commit | 06dc485552957e6b0492e269e2fa0347790498e9 | [log] [tgz] |
---|---|---|
author | Xavier Ducrohet <xav@android.com> | Fri Jan 04 14:58:14 2013 -0800 |
committer | Xavier Ducrohet <xav@android.com> | Thu Jan 10 18:16:40 2013 -0800 |
tree | 990d72fbe227d42a425c1913fd93fdc1ab90d467 | |
parent | 1ac02d56be392643eb31a855fb418cfa926b63f8 [diff] |
Custom Junit test report. Duplicated the report classes from Gradle to customize them in order to show the device the test run on, or which flavor and project the test is coming from. This duplicated code is in its own source folder to separate this from AOSP code and retains the original copyright. The "test" tasks which runs all test<Flavor> tasks now also aggregate the results of the test<Flavor> tasks and is designed to run even when those fails by telling them to ignore errors if the "test" task is set to run. Added a new plugin strictly to do aggregate for the subprojects. Plugin is called 'android-reporting' It's meant to be used by the root project. It behaves similarly as the "test" class in the android project, by telling sub tasks to ignore errors. The aggregate tasks will throw an exception if the sub test tasks saw errors in order to ensure that the caller to gradle can manage errors still. Change-Id: I2c1df77cf8073fb74b4145b09aa7609d7999ef6c
The official Gradle plugin to build Android applications.
The plugin adds several concepts to the Gradle DSL, all in the android extension:
release
and debug
. You can add additional build types.If you do not define any flavors for your product, only the values from the default config are used. Flavor settings override the default config.
From this, the plugin will add the appropriate tasks to build each combination of build type and product flavor. The plugin will also define the following source directories:
src/main/java
- Java source to be included in all application variants.src/main/res
- Resources to be included in all application variants.src/$BuildType/java
- Java source to be included in all application variants with the given build type.src/$BuildType/res
- Java source to be included in all application variants with the given build type.src/$ProductFlavor/java
- Resources to be included in all application variants with the given product flavor.src/$ProductFlavor/res
- Resources to be included in all application variants with the given product flavor.src/test/java
- Test source to be included in all test applications.src/test$ProductFlavor/java
- Test source to be include for the test application for the given product flavor.You can configure these locations by configuring the associated source set provided by the android extension.
Compile time dependencies are declared in the usual way.
Have a look at the tests/basic/build.gradle
build file and other projects in tests customized/build.gradle
to see the DSL in action.
android.target
- required.android.defaultConfig.versionCode
- defaults to that specified in src/main/AndroidManifest.xml
android.defaultConfig.versionName
- defaults to that specified in src/main/AndroidManifest.xml
android.productFlavors.$flavor.packageName
- defaults to that specified in src/main/AndroidManifest.xml
android.productFlavors.$flavor.versionCode
- defaults to ${android.defaultConfig.versionCode}
android.productFlavors.$flavor.versionName
- defaults to ${android.defaultConfig.versionName}
android.buildTypes.$type.zipAlign
- defaults to true
for release
and false
for debug
android.sourceSets.main.java.srcDirs
- defaults to src/main/java
android.sourceSets.main.resources.srcDirs
- defaults to src/main/res
android.sourceSets.$flavor.java.srcDirs
- defaults to src/$flavor/java
android.sourceSets.$flavor.resources.srcDirs
- defaults to src/$flavor/res
android.sourceSets.$buildType.java.srcDirs
- defaults to src/$buildType/java
android.sourceSets.$buildType.resources.srcDirs
- defaults to src/$buildType/res
android.sourceSets.test.java.srcDirs
- defaults to src/test/java
android.sourceSets.test$Flavor.java.srcDirs
- defaults to src/test$Flavor/java
dependencies.compile
- compile time dependencies for all applications.The source tree contains the following:
builder
directory contains the builder library.gradle
directory contains the plugin implementation.tests
directory contains various test applications used both as samples and tests by the plugin build system.To build the plugin, run ./gradlew uploadArchives
To build the plugin for release, removing the SNAPSHOT from the version, run ./gradlew --init-script release.gradle <tasks>
To import the plugin into the IDE, run ./gradlew idea
or ./gradlew eclipse
.
To build a test application:
local.properties
file to point at your local install of the Android SDK. Normally, these files would not be checked into source control, but would be generated when the project is bootstrapped.../../gradlew tasks
to see the tasks that are available.You can also run these tasks:
assemble
- builds all combinations of build type and product flavorassemble$BuildType
- build all flavors for the given build type.assemble$ProductFlavor
- build all build types for the given product flavor.assemble$ProductFlavor$BuildType
- build the given application variant.install$ProductFlavor$BuildType
- build and install the given application variant.For each variant (product-flavor, build-type):
build/source
from resource directories (main-source-set, product-flavor-source-set, build-type-source-set)build/libs
build/resources
build/libs
build/libs
.Some other notes: