
com.stanfy.helium.gradle.JavaPlugin.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.stanfy.helium.gradle.internal.SourceCodeGenerators
import org.gradle.api.GradleException
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.tasks.SourceSet
/**
* Integrates Helium with standard Java project.
*/
class JavaPlugin implements Plugin {
@Override
void apply(final Project project) {
project.apply plugin: HeliumPlugin
if (!project.plugins.findPlugin(org.gradle.api.plugins.JavaPlugin.class)) {
throw new GradleException("Java 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()
SourceSet main = project.sourceSets.main
main.java.srcDirs += allTasks.collect { it.output }
project.tasks['compileJava'].dependsOn allTasks
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy