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

com.stanfy.helium.gradle.HeliumPlugin.groovy Maven / Gradle / Ivy

package com.stanfy.helium.gradle

import com.stanfy.helium.dsl.HeliumScript
import org.gradle.api.Plugin
import org.gradle.api.Project

/**
 * Gradle plugin for Helium.
 */
class HeliumPlugin implements Plugin {

  private UserConfig config

  @Override
  void apply(final Project project) {
    project.extensions.add("helium", HeliumExtension)
    HeliumExtension hel = project.helium
    config = new UserConfig(project)
    hel.attach config

    project.afterEvaluate {
      createTasks(project)
    }
  }

  void createTasks(final Project project) {
    HeliumExtension extension = project.helium

    def classpath = extension.classpath ? extension.classpath : project.files()
    URL[] urls = classpath.collect() { it.toURI().toURL() } as URL[]
    URLClassLoader classLoader = new URLClassLoader(urls, HeliumScript.classLoader)

    new HeliumInitializer(extension, config).createTasks(classLoader)
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy