Giriş
İskelet olarak şöyle
import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.Configuration import org.gradle.api.file.DuplicatesStrategy import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.bundling.Zip import org.gradle.api.tasks.compile.JavaCompile import org.gradle.jvm.tasks.Jar class FooPlugin implements Plugin<Project> { private Project project @Override void apply(Project project) { this.project = project ... } ... }
Apply içindeki extension şöyle. Burada hem extension, hem de yeni bir plugin daha ekleniyor.
@Override void apply(Project project) { project.extensions.create('bar', BarExtension, project) project.plugins.apply(BarPlugin) ... }
Her plugin bir task ekler. Plugin tarafından eklenen task'ları görmek için şöyle yaparız
def tasksBefore = [], tasksAfter = []project.tasks.each { tasksBefore.add(it.name) } // get all tasksapply(plugin: 'idea') // apply pluginproject.tasks.each { tasksAfter.add(it.name) } // get all taskstasksAfter.removeAll(tasksBefore); // get the differenceprintln 'idea tasks: ' + tasksAfter;
Hiç yorum yok:
Yorum Gönder