Skip to content

Commit

Permalink
[feat] #1 custom plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
Sangwook123 committed Apr 2, 2024
1 parent b932a9d commit 7b539fc
Show file tree
Hide file tree
Showing 5 changed files with 128 additions and 0 deletions.
22 changes: 22 additions & 0 deletions build-logic/convention/src/main/java/AndroidApplicationPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import com.android.build.api.dsl.ApplicationExtension
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure
import org.sopt.convention.Const
import org.sopt.convention.configureKotlinAndroid

internal class AndroidApplicationPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("com.android.application")
apply("org.jetbrains.kotlin.android")
}

extensions.configure<ApplicationExtension> {
configureKotlinAndroid(this)
defaultConfig.targetSdk = Const.targetSdk
}
}
}
}
21 changes: 21 additions & 0 deletions build-logic/convention/src/main/java/AndroidLibraryPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import com.android.build.gradle.LibraryExtension
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure
import org.sopt.convention.configureKotlinAndroid

class AndroidLibraryPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("com.android.library")
apply("org.jetbrains.kotlin.android")
}

extensions.configure<LibraryExtension> {
configureKotlinAndroid(this)
viewBinding.enable = true
}
}
}
}
37 changes: 37 additions & 0 deletions build-logic/convention/src/main/java/FeaturePlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.getByType

internal class FeaturePlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager){
apply("sopt.android.library")
apply("sopt.android.hilt")
}

val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
dependencies {
"implementation"(libs.findLibrary("appcompat").get())
"implementation"(libs.findLibrary("core.ktx").get())
"implementation"(libs.findLibrary("constraintlayout").get())
"implementation"(libs.findLibrary("navigation.fragment.ktx").get())
"implementation"(libs.findLibrary("navigation.ui.ktx").get())

"implementation"(libs.findLibrary("androidx.lifecycle.runtime.ktx").get())
"implementation"(libs.findLibrary("androidx.lifecycle.viewmodel.ktx").get())
"implementation"(libs.findLibrary("androidx.activity.ktx").get())
"implementation"(libs.findLibrary("androidx.fragment.ktx").get())
"implementation"(libs.findLibrary("androidx.recyclerview").get())
"implementation"(libs.findLibrary("google.material").get())

"implementation"(libs.findLibrary("kotlinx.coroutines.android").get())
"implementation"(libs.findLibrary("kotlinx.coroutines.core").get())

"implementation"(libs.findLibrary("timber").get())
}
}
}
}
22 changes: 22 additions & 0 deletions build-logic/convention/src/main/java/HiltPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.dependencies
import org.sopt.convention.libs

class HiltPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("com.google.devtools.ksp")
apply("dagger.hilt.android.plugin")
}

dependencies {
"implementation"(libs.findLibrary("hilt.android").get())
"ksp"(libs.findLibrary("hilt.compiler").get())
"testImplementation"(libs.findLibrary("hilt.testing").get())
"kspTest"(libs.findLibrary("hilt.testing.compiler").get())
}
}
}
}
26 changes: 26 additions & 0 deletions build-logic/convention/src/main/java/JavaLibraryPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.plugins.JavaPluginExtension
import org.gradle.kotlin.dsl.configure
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
import org.sopt.convention.Const

class JavaLibraryPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("java-library")
apply("org.jetbrains.kotlin.jvm")
}

extensions.configure<JavaPluginExtension> {
sourceCompatibility = Const.JAVA_VERSION
targetCompatibility = Const.JAVA_VERSION
}

extensions.configure<KotlinProjectExtension> {
jvmToolchain(Const.JDK_VERSION)
}
}
}
}

0 comments on commit 7b539fc

Please sign in to comment.