Skip to content

Commit cef332f

Browse files
authored
chore: Android Gradle Plugin 9.0.0 대응 (#1493)
* chore: set agp version 9.0.0 * chore: agp 9.0.0 대응 - built in kotlin 사용 - ksp 빌드 경로 명시적으로 표기 안하도록 변경 - BaseExtension -> CommonExtension * chore: gradle properties 대응 - Dagger-hilt로 인해 newDsl은 다음에 대응 - configuration-cache parllel 속성 추가 - jvm heap 할당량 8기가로 추가 * chore: 추가 대응 * chore: 올리는 김에 다른 것도 올림
1 parent b43e36a commit cef332f

15 files changed

Lines changed: 47 additions & 79 deletions

File tree

app/build.gradle.kts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -101,16 +101,6 @@ android {
101101
isDebuggable = false
102102
}
103103
}
104-
applicationVariants.all {
105-
val variant = this
106-
kotlin {
107-
sourceSets {
108-
getByName(variant.name) {
109-
kotlin.srcDir("build/generated/ksp/${variant.name}/kotlin")
110-
}
111-
}
112-
}
113-
}
114104
}
115105

116106
ksp {

baselineprofile/build.gradle.kts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,9 @@
2323
* SOFTWARE.
2424
*/
2525
import com.android.build.api.dsl.ManagedVirtualDevice
26-
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
2726

2827
plugins {
2928
alias(libs.plugins.androidTest)
30-
alias(libs.plugins.kotlin.android)
3129
alias(libs.plugins.androidx.baselineprofile)
3230
}
3331

@@ -39,11 +37,7 @@ android {
3937
sourceCompatibility = JavaVersion.VERSION_17
4038
targetCompatibility = JavaVersion.VERSION_17
4139
}
42-
43-
kotlin {
44-
compilerOptions.jvmTarget.set(JvmTarget.JVM_17)
45-
}
46-
40+
4741
defaultConfig {
4842
minSdk = libs.versions.minSdk.get().toInt()
4943
targetSdk = libs.versions.targetSdk.get().toInt()

build-logic/convention/src/main/kotlin/org/sopt/official/plugin/AndroidApplicationPlugin.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.sopt.official.plugin
22

3-
import com.android.build.gradle.BaseExtension
3+
import com.android.build.api.dsl.CommonExtension
44
import org.gradle.api.Project
55
import org.gradle.kotlin.dsl.apply
66
import org.gradle.kotlin.dsl.getByType
@@ -23,7 +23,7 @@ class AndroidApplicationPlugin : AndroidBasePlugin() {
2323
configureAndroidBase()
2424

2525
val properties = ConfigurationManager.loadProperties(this)
26-
extensions.getByType<BaseExtension>().apply {
26+
extensions.getByType<CommonExtension>().apply {
2727
configureBuildConfigFields(properties)
2828
}
2929

build-logic/convention/src/main/kotlin/org/sopt/official/plugin/AndroidComposePlugin.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.sopt.official.plugin
22

3-
import com.android.build.gradle.BaseExtension
3+
import com.android.build.api.dsl.CommonExtension
44
import org.gradle.api.Project
55
import org.gradle.kotlin.dsl.configure
66
import org.gradle.kotlin.dsl.getByType
@@ -12,7 +12,7 @@ class AndroidComposePlugin : BasePlugin() {
1212
override fun apply(target: Project): Unit = with(target) {
1313
applyPlugin("org.jetbrains.kotlin.plugin.compose")
1414

15-
extensions.getByType<BaseExtension>().apply {
15+
extensions.getByType<CommonExtension>().apply {
1616
buildFeatures.apply {
1717
compose = true
1818
}

build-logic/convention/src/main/kotlin/org/sopt/official/plugin/AndroidFeaturePlugin.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.sopt.official.plugin
22

3-
import com.android.build.gradle.BaseExtension
3+
import com.android.build.api.dsl.CommonExtension
44
import org.gradle.api.Project
55
import org.gradle.kotlin.dsl.apply
66
import org.gradle.kotlin.dsl.getByType
@@ -23,7 +23,7 @@ class AndroidFeaturePlugin : AndroidBasePlugin() {
2323
configureAndroidBase()
2424

2525
val properties = ConfigurationManager.loadProperties(this)
26-
extensions.getByType<BaseExtension>().apply {
26+
extensions.getByType<CommonExtension>().apply {
2727
configureBuildConfigFields(properties)
2828
}
2929

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,11 @@
11
package org.sopt.official.plugin
22

33
import org.gradle.api.Project
4-
import org.gradle.kotlin.dsl.getByType
5-
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
6-
import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
74
import org.sopt.official.plugin.base.BasePlugin
85
import org.sopt.official.plugin.configuration.DependencyManager.addKotlinDependencies
96

107
class AndroidKotlinPlugin : BasePlugin() {
118
override fun apply(target: Project) = with(target) {
12-
applyPlugin("kotlin-android")
13-
14-
extensions.getByType<KotlinAndroidProjectExtension>().apply {
15-
compilerOptions {
16-
jvmTarget.set(JvmTarget.JVM_17)
17-
}
18-
}
19-
209
addKotlinDependencies(libs)
2110
}
2211
}

build-logic/convention/src/main/kotlin/org/sopt/official/plugin/AndroidTestPlugin.kt

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.sopt.official.plugin
22

3-
import com.android.build.gradle.BaseExtension
3+
import com.android.build.api.dsl.CommonExtension
44
import org.gradle.api.Project
55
import org.gradle.kotlin.dsl.apply
66
import org.gradle.kotlin.dsl.getByType
@@ -11,22 +11,18 @@ class AndroidTestPlugin : BasePlugin() {
1111
override fun apply(target: Project): Unit = with(target) {
1212
apply<JUnit5Plugin>()
1313

14-
extensions.getByType<BaseExtension>().apply {
15-
defaultConfig {
14+
extensions.getByType<CommonExtension>().apply {
15+
defaultConfig.apply {
1616
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
1717
testInstrumentationRunnerArguments["runnerBuilder"] =
1818
"de.mannodermaus.junit5.AndroidJUnit5Builder"
1919
}
2020

21-
testOptions {
22-
unitTests {
23-
isIncludeAndroidResources = true
24-
}
21+
testOptions.unitTests.apply {
22+
isIncludeAndroidResources = true
2523
}
2624

27-
packagingOptions {
28-
resources.excludes.add("META-INF/LICENSE*")
29-
}
25+
packaging.resources.excludes.add("META-INF/LICENSE*")
3026
}
3127

3228
addTestDependencies(libs)
Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,44 @@
11
package org.sopt.official.plugin.base
22

3-
import com.android.build.gradle.BaseExtension
3+
import com.android.build.api.dsl.ApplicationExtension
4+
import com.android.build.api.dsl.CommonExtension
45
import org.gradle.api.JavaVersion
56
import org.gradle.api.Project
67
import org.gradle.kotlin.dsl.getByType
78

89
abstract class AndroidBasePlugin : BasePlugin() {
910

1011
protected fun Project.configureAndroidBase() {
11-
extensions.getByType<BaseExtension>().apply {
12-
setCompileSdkVersion(libs.findVersion("compileSdk").get().requiredVersion.toInt())
12+
extensions.getByType<CommonExtension>().apply {
13+
compileSdk = libs.findVersion("compileSdk").get().requiredVersion.toInt()
1314

14-
defaultConfig {
15+
defaultConfig.apply {
1516
minSdk = libs.findVersion("minSdk").get().requiredVersion.toInt()
16-
targetSdk = libs.findVersion("targetSdk").get().requiredVersion.toInt()
1717
}
1818

19-
compileOptions {
19+
compileOptions.apply {
2020
isCoreLibraryDesugaringEnabled = true
2121
sourceCompatibility = JavaVersion.VERSION_17
2222
targetCompatibility = JavaVersion.VERSION_17
2323
}
2424

25-
packagingOptions {
26-
resources.excludes.apply {
27-
add("/META-INF/AL2.0")
28-
add("/META-INF/LGPL2.1")
29-
add("kotlin/reflect/*")
30-
}
25+
packaging.resources.excludes.apply {
26+
add("/META-INF/AL2.0")
27+
add("/META-INF/LGPL2.1")
28+
add("kotlin/reflect/*")
3129
}
3230

3331
buildFeatures.apply {
3432
viewBinding = true
3533
buildConfig = true
3634
}
3735
}
36+
37+
// targetSdk is only available for Application modules
38+
extensions.findByType(ApplicationExtension::class.java)?.apply {
39+
defaultConfig.apply {
40+
targetSdk = libs.findVersion("targetSdk").get().requiredVersion.toInt()
41+
}
42+
}
3843
}
3944
}

build-logic/convention/src/main/kotlin/org/sopt/official/plugin/configuration/ConfigurationManager.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.sopt.official.plugin.configuration
22

3-
import com.android.build.gradle.BaseExtension
3+
import com.android.build.api.dsl.CommonExtension
44
import org.gradle.api.Project
55
import java.util.Properties
66

@@ -16,8 +16,8 @@ object ConfigurationManager {
1616
}
1717
}
1818

19-
fun BaseExtension.configureBuildConfigFields(properties: Properties) {
20-
defaultConfig {
19+
fun CommonExtension.configureBuildConfigFields(properties: Properties) {
20+
defaultConfig.apply {
2121
// API Keys and URLs
2222
buildConfigField("String", "SOPTAMP_API_KEY", properties.getQuotedProperty("apiKey"))
2323
buildConfigField("String", "SOPTAMP_DATA_STORE_KEY", properties.getQuotedProperty("dataStoreKey"))
@@ -48,14 +48,14 @@ object ConfigurationManager {
4848
buildConfigField("String", "PROD_SERVER_CLIENT_ID", properties.getQuotedProperty("prodServerClientId"))
4949
}
5050

51-
buildTypes {
52-
getByName("debug") {
51+
buildTypes.apply {
52+
getByName("debug").apply {
5353
buildConfigField(
5454
"String", "PLAYGROUND_API",
5555
properties.getQuotedProperty("debugPlaygroundApi")
5656
)
5757
}
58-
getByName("release") {
58+
getByName("release").apply {
5959
buildConfigField(
6060
"String", "PLAYGROUND_API",
6161
properties.getQuotedProperty("releasePlaygroundApi")
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#Fri Jan 13 12:46:38 KST 2023
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)