
com.stanfy.helium.gradle.AndroidPlugin.groovy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gradle-plugin Show documentation
Show all versions of gradle-plugin Show documentation
DSL and Java API for REST API specification
The newest version!
package com.stanfy.helium.gradle
import com.android.build.gradle.AppPlugin
import com.android.build.gradle.api.BaseVariant
import com.stanfy.helium.gradle.internal.SourceCodeGenerators
import com.stanfy.helium.gradle.tasks.BaseHeliumTask
import org.gradle.api.GradleException
import org.gradle.api.Plugin
import org.gradle.api.Project
/**
* Integrates Helium with Android plugin.
*/
class AndroidPlugin implements Plugin {
@Override
void apply(final Project project) {
project.apply plugin: HeliumPlugin
if (!project.plugins.hasPlugin("com.android.application")
&& !project.plugins.hasPlugin("com.android.library")) {
throw new GradleException("Android plugin is not applied");
}
project.afterEvaluate {
addGeneratedSources(project)
}
}
@groovy.transform.PackageScope
static void addGeneratedSources(final Project project) {
HeliumExtension hel = project.helium
def generators = SourceCodeGenerators.java()
def allTasks = hel.specifications.collect { File spec ->
generators.collect { hel.sourceGen(spec)[it] }.findAll { it != null }
}.flatten()
def variants = (project.plugins.findPlugin(AppPlugin.class)
? project.android.applicationVariants
: project.android.libraryVariants)
variants.all { BaseVariant variant ->
allTasks.each { BaseHeliumTask task ->
variant.registerJavaGeneratingTask(task, task.output)
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy