Skip to content

Commit ed96073

Browse files
committed
rework Gradle configuration to use id-based plugins & Kotlin's compilerOptions
1 parent 151332a commit ed96073

File tree

5 files changed

+36
-58
lines changed

5 files changed

+36
-58
lines changed

build.gradle.kts

+11-22
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,23 @@
1-
@file:Suppress("DSL_SCOPE_VIOLATION")
2-
31
import com.vanniktech.maven.publish.AndroidSingleVariantLibrary
42
import com.vanniktech.maven.publish.MavenPublishBaseExtension
53
import com.vanniktech.maven.publish.SonatypeHost
64
import java.util.Properties
7-
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
5+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
6+
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
87

98
plugins {
10-
alias(libs.plugins.kotlin.jvm) apply false
11-
alias(libs.plugins.kotlin.android) apply false
12-
alias(libs.plugins.kotlin.serialization) apply false
13-
alias(libs.plugins.agp.application) apply false
14-
alias(libs.plugins.kotlinter) apply false
15-
alias(libs.plugins.mavenPublish) apply false
9+
id("org.jetbrains.kotlin.android") version "1.8.10" apply false
10+
id("org.jetbrains.kotlin.plugin.serialization") version "1.8.10" apply false
11+
id("org.jmailen.kotlinter") version "3.13.0" apply false
12+
id("com.android.application") version "7.4.2" apply false
13+
id("com.vanniktech.maven.publish.base") version "0.24.0" apply false
1614
}
1715

1816
subprojects {
19-
repositories {
20-
google()
21-
mavenCentral()
22-
maven { url = uri("https://kotlin.bintray.com/kotlinx/") }
23-
}
24-
25-
tasks.withType<KotlinCompile>().configureEach {
26-
kotlinOptions {
27-
jvmTarget = "1.8"
28-
allWarningsAsErrors = true
29-
freeCompilerArgs = freeCompilerArgs.toMutableList().apply {
30-
add("-Xskip-prerelease-check")
31-
}.toList()
17+
tasks.withType<KotlinJvmCompile>().configureEach {
18+
compilerOptions {
19+
jvmTarget.set(JvmTarget.JVM_1_8)
20+
allWarningsAsErrors.set(true)
3221
}
3322
}
3423

core/build.gradle.kts

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
@file:Suppress("DSL_SCOPE_VIOLATION")
1+
@file:Suppress("UnstableApiUsage")
22

33
plugins {
44
id("com.android.library")
5-
alias(libs.plugins.kotlin.android)
6-
alias(libs.plugins.mavenPublish)
7-
alias(libs.plugins.kotlinter)
8-
alias(libs.plugins.kotlin.serialization)
5+
id("org.jetbrains.kotlin.android")
6+
id("org.jetbrains.kotlin.plugin.serialization")
7+
id("com.vanniktech.maven.publish.base")
8+
id("org.jmailen.kotlinter")
99
}
1010

1111
android {
@@ -29,7 +29,7 @@ android {
2929
}
3030

3131
composeOptions {
32-
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
32+
kotlinCompilerExtensionVersion = libs.compose.compiler.get().version
3333
}
3434

3535
kotlinOptions {

demo/build.gradle.kts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
@file:Suppress("DSL_SCOPE_VIOLATION")
1+
@file:Suppress("UnstableApiUsage")
22

33
plugins {
44
id("com.android.application")
5-
alias(libs.plugins.kotlin.android)
6-
alias(libs.plugins.kotlinter)
7-
alias(libs.plugins.kotlin.serialization)
5+
id("org.jetbrains.kotlin.android")
6+
id("org.jetbrains.kotlin.plugin.serialization")
7+
id("org.jmailen.kotlinter")
88
}
99

1010
android {
@@ -31,7 +31,7 @@ android {
3131
}
3232

3333
composeOptions {
34-
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
34+
kotlinCompilerExtensionVersion = libs.compose.compiler.get().version
3535
}
3636

3737
buildFeatures {

gradle/libs.versions.toml

+5-25
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,13 @@
33
compileSdk = "33"
44
minSdk = "21"
55

6-
kotlin-lang = "1.8.10"
7-
androidGradlePlugin = "7.4.2"
8-
mavenPublish = "0.24.0"
9-
10-
kotlin-serialization = "1.5.0"
11-
compose-compiler = "1.4.3"
12-
compose-main = "1.3.1"
13-
compose-navigation = "2.5.3"
14-
156
[libraries]
167

17-
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin-lang" }
18-
kotlin-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlin-serialization" }
8+
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version = "1.8.10" }
9+
kotlin-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version = "1.5.0" }
1910
# compiler dependency is defined to help Renovabot update the version
20-
compose-compiler = { module = "androidx.compose.compiler:compiler", version.ref = "compose-compiler" }
21-
compose-material = { module = "androidx.compose.material:material", version.ref = "compose-main" }
22-
compose-navigation = { module = "androidx.navigation:navigation-compose", version.ref = "compose-navigation" }
11+
compose-compiler = { module = "androidx.compose.compiler:compiler", version = "1.4.3" }
12+
compose-material = { module = "androidx.compose.material:material", version = "1.3.1" }
13+
compose-navigation = { module = "androidx.navigation:navigation-compose", version = "2.5.3" }
2314
junit = { module = "junit:junit", version = "4.13.2" }
2415
roboletric = { module = "org.robolectric:robolectric", version = "4.9.2" }
25-
26-
[bundles]
27-
28-
[plugins]
29-
agp-library = { id = "com.android.library", version.ref = "androidGradlePlugin" }
30-
agp-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
31-
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin-lang" }
32-
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin-lang" }
33-
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin-lang" }
34-
mavenPublish = { id = "com.vanniktech.maven.publish.base", version.ref = "mavenPublish" }
35-
kotlinter = { id = "org.jmailen.kotlinter", version = "3.13.0" }

settings.gradle.kts

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
@file:Suppress("UnstableApiUsage")
2+
13
rootProject.name = "NavigationComposeTyped"
24

35
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
@@ -22,5 +24,12 @@ pluginManagement {
2224
}
2325
}
2426

27+
dependencyResolutionManagement {
28+
repositories {
29+
google()
30+
mavenCentral()
31+
}
32+
}
33+
2534
include(":core")
2635
include(":demo")

0 commit comments

Comments
 (0)