| buildscript { |
| repositories { |
| maven { url '../../../../../out/repo' } |
| } |
| dependencies { |
| classpath 'com.android.tools.build:gradle:0.12.1' |
| } |
| } |
| apply plugin: 'com.android.application' |
| |
| android { |
| compileSdkVersion 19 |
| buildToolsVersion '19.1.0' |
| } |
| |
| |
| public class GenerateCode extends DefaultTask { |
| @Input |
| String value |
| |
| @OutputFile |
| File outputFile |
| |
| @TaskAction |
| void taskAction() { |
| getOutputFile().text = |
| "package com.custom;\n" + |
| "public class Foo {\n" + |
| " public static String getBuildDate() { return \"${getValue()}\"; }\n" + |
| "}\n"; |
| } |
| } |
| |
| |
| android.applicationVariants.all { variant -> |
| |
| // create a task that generates a java class |
| File sourceFolder = file("${buildDir}/customCode/${variant.dirName}") |
| def javaGenerationTask = tasks.create(name: "generatedCodeFor${variant.name.capitalize()}", type: GenerateCode) { |
| value new Date().format("yyyy-MM-dd'T'HH:mm'Z'", TimeZone.getTimeZone("UTC")) |
| outputFile file("${sourceFolder.absolutePath}/com/custom/Foo.java") |
| } |
| |
| variant.registerJavaGeneratingTask(javaGenerationTask, sourceFolder) |
| } |