Gradle Plugin

Script Plugin

apply(from = "common.gradle") // 중복된 코드가 담긴 파일
apply(from = "project.gradle") // 중복된 코드가 담긴 파일

Binary Plugin

plugins {
		id("my.custom.plugin")
}
internal class AndroidLibraryPlugin : Plugin<Project> {
    override fun apply(target: Project) = with(target) {
        with(pluginManager) {
            apply("com.androidLibrary")
            apply("com.jetbrains.kotlin.android")
        }
        extensions.configure<LibraryExtension> {
            compileSdk = 33
            minSdk = 24
            compileOptions {
                sourceCompatibility JavaVersion.VERSION_1_8 
                targetCompatibility JavaVersion.VERSION_1_8
            }
            kotlinOptions {
                jvmTarget = '1.8'
            }
        }
		depedencies { ... }
    }
}