I am trying to create custom gradle plugin by this article https://quickbirdstudios.com/blog/gradle-kotlin-buildsrc-plugin-android/, and i stuck on this error. What i am doing wrong?
settings.gradle.kts
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "qweqwe"
include(":app")
project_build.gradle.kts
plugins {
id("com.android.application") apply false
id("com.android.library") apply false
kotlin("android")
}
tasks.register("clean", Delete::class){
delete(rootProject.buildDir)
}
buildSrc_build.gradle.kts
import org.gradle.kotlin.dsl.`kotlin-dsl`
plugins {
`kotlin-dsl`
}
repositories {
mavenCentral()
google()
jcenter()
}
dependencies {
/* Example Dependency */
/* Depend on the android gradle plugin, since we want to access it in our plugin */
implementation("com.android.tools.build:gradle:7.1.1")
/* Example Dependency */
/* Depend on the kotlin plugin, since we want to access it in our plugin */
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50")
/* Depend on the default Gradle API's since we want to build a custom plugin */
implementation(gradleApi())
implementation(localGroovy())
}
app_build.gradle.kts
plugins {
id("com.android.application")
kotlin("android")
id("com.example.myplugin")
}
android {
compileSdk = 32
defaultConfig {
applicationId = "com.example.qweqwe"
minSdk = 21
targetSdk = 32
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}
dependencies {
implementation("androidx.core:core-ktx:1.7.0")
implementation("androidx.appcompat:appcompat:1.4.1")
implementation("com.google.android.material:material:1.5.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.3")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.3")
androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0")
}
buildSrc/src/main/kotlin/MyPlugin.kt
import org.gradle.api.Plugin
import org.gradle.api.Project
open class MyPlugin : Plugin<Project> {
override fun apply(project: Project) {
project.configureAndroid()
}
}
internal fun Project.configureAndroid() = this.extensions.getByType<AndroidBaseExtension>().run {
compileSdkVersion(28)
defaultConfig {
minSdkVersion(21)
targetSdkVersion(28)
versionCode = 2
versionName = "1.0.1"
testInstrumentationRunner = "android.support.test.runner.AndroidJUnitRunner"
}
}
buildSrc\src\main\resources\META-INF\gradle-plugins\com.example.myplugin.properties
implementation-class=MyPlugin