5 Aralık 2021 Pazar

Plugin Geliştirme

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 tasks

apply(plugin: 'idea') // apply plugin

project.tasks.each { tasksAfter.add(it.name) } // get all tasks
tasksAfter.removeAll(tasksBefore); // get the difference

println 'idea tasks: ' + tasksAfter;

Hiç yorum yok:

Yorum Gönder

Gradle Daemon Nedir?

Giriş Açıklaması  şöyle . Gradle Daemon arka planda çalışır. Çünkü Gradle'ı ayağa kaldırmak ve ilklendirmek çok uzun sürüyor.  Gradle ru...