From 95d364c82d452f6647ae92e4deebb55fa8904d83 Mon Sep 17 00:00:00 2001 From: Nelson Osacky Date: Tue, 27 Oct 2026 11:59:36 +0100 Subject: [PATCH] build(samples): Prepare the samples to build outside the SDK build The samples and Android integration tests are about to become their own builds, which include the SDK build. Several things tie them to the SDK build today: - They call buildSrc's Config, which other builds cannot see. They now name the coordinates directly, the way a customer's build would. - Five samples' shadowJar tasks use buildSrc's MergeSpringMetadataAction, which only the samples use. It moves to build-logic, which the new builds can include. - They pick the Kotlin stdlib version with KotlinCompilerVersion, a compiler-internal class that came from buildSrc's classpath. They now use KGP's getKotlinPluginVersion(), which returns the same version. - AGP came from Config.AGP on the root buildscript classpath. A composite build must use a single AGP version, so it now comes from the version catalog, and each build's settings applies the AGP matrix job's VERSION_AGP override. - The javac -Xlint:all -Werror flags came from the root allprojects block. They move to the io.sentry.jdk-target convention, which every subproject already applies and the new builds can apply too. Co-Authored-By: Claude Opus 5.5 --- .../io/sentry/gradle/JdkTargetConvention.kt | 14 ++++++++++++++ .../sentry/gradle}/MergeSpringMetadataAction.kt | 2 ++ build.gradle.kts | 6 +----- buildSrc/src/main/java/Config.kt | 5 ----- gradle/libs.versions.toml | 6 +++--- .../build.gradle.kts | 7 +++---- .../sentry-uitest-android/build.gradle.kts | 5 ++--- .../test-app-size/build.gradle.kts | 2 +- .../sentry-samples-android/build.gradle.kts | 7 +++---- .../sentry-samples-netflix-dgs/build.gradle.kts | 7 ++++--- .../sentry-samples-spring-7/build.gradle.kts | 16 ++++++++-------- .../build.gradle.kts | 8 ++++---- .../build.gradle.kts | 8 ++++---- .../build.gradle.kts | 8 ++++---- .../build.gradle.kts | 8 ++++---- .../build.gradle.kts | 6 +++--- .../build.gradle.kts | 8 ++++---- .../build.gradle.kts | 8 ++++---- .../build.gradle.kts | 8 ++++---- .../build.gradle.kts | 8 ++++---- .../build.gradle.kts | 8 ++++---- .../build.gradle.kts | 9 +++++---- .../build.gradle.kts | 9 +++++---- .../build.gradle.kts | 6 +++--- .../build.gradle.kts | 7 ++++--- .../sentry-samples-spring-boot/build.gradle.kts | 9 +++++---- .../build.gradle.kts | 14 +++++++------- .../sentry-samples-spring/build.gradle.kts | 14 +++++++------- settings.gradle.kts | 12 ++++++++++++ 29 files changed, 128 insertions(+), 107 deletions(-) rename {buildSrc/src/main/java => build-logic/src/main/kotlin/io/sentry/gradle}/MergeSpringMetadataAction.kt (99%) diff --git a/build-logic/src/main/kotlin/io/sentry/gradle/JdkTargetConvention.kt b/build-logic/src/main/kotlin/io/sentry/gradle/JdkTargetConvention.kt index ca2999f878a..d8d743952b8 100644 --- a/build-logic/src/main/kotlin/io/sentry/gradle/JdkTargetConvention.kt +++ b/build-logic/src/main/kotlin/io/sentry/gradle/JdkTargetConvention.kt @@ -33,9 +33,23 @@ private val PUBLISHED_JAVA_VERSION = JavaVersion.VERSION_1_8 * archives are checked for it * - published Android modules main code targets Java 1.8 * - minSdk is set for Android libraries + * - javac warnings fail the build */ class JdkTargetConvention : Plugin { override fun apply(project: Project) { + project.tasks.withType(JavaCompile::class.java).configureEach { + options.compilerArgs.addAll( + listOf( + "-Xlint:all", + "-Werror", + "-Xlint:-classfile", + "-Xlint:-processing", + "-Xlint:-try", + "-Xlint:-options", + ) + ) + } + project.plugins.withType(JavaBasePlugin::class.java) { project.extensions.getByType(JavaPluginExtension::class.java).toolchain { languageVersion.set(BUILD_JDK) diff --git a/buildSrc/src/main/java/MergeSpringMetadataAction.kt b/build-logic/src/main/kotlin/io/sentry/gradle/MergeSpringMetadataAction.kt similarity index 99% rename from buildSrc/src/main/java/MergeSpringMetadataAction.kt rename to build-logic/src/main/kotlin/io/sentry/gradle/MergeSpringMetadataAction.kt index 2df744924cb..ac73e21f588 100644 --- a/buildSrc/src/main/java/MergeSpringMetadataAction.kt +++ b/build-logic/src/main/kotlin/io/sentry/gradle/MergeSpringMetadataAction.kt @@ -1,3 +1,5 @@ +package io.sentry.gradle + import java.net.URI import java.nio.file.FileSystems import java.nio.file.Files diff --git a/build.gradle.kts b/build.gradle.kts index 3ed35d2da82..41895680476 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -27,6 +27,7 @@ plugins { alias(libs.plugins.spring.dependency.management) apply false id("io.sentry.javadoc.aggregate") alias(libs.plugins.sentry) apply false + alias(libs.plugins.android.application) apply false } buildscript { @@ -34,8 +35,6 @@ buildscript { google() } dependencies { - classpath(Config.BuildPlugins.androidGradle) - // add classpath of sentry android gradle plugin // classpath("io.sentry:sentry-android-gradle-plugin:{version}") @@ -102,9 +101,6 @@ allprojects { TestLogEvent.FAILED ) } - withType().configureEach { - options.compilerArgs.addAll(arrayOf("-Xlint:all", "-Werror", "-Xlint:-classfile", "-Xlint:-processing", "-Xlint:-try", "-Xlint:-options")) - } } } diff --git a/buildSrc/src/main/java/Config.kt b/buildSrc/src/main/java/Config.kt index 05786658ef3..774604fc038 100644 --- a/buildSrc/src/main/java/Config.kt +++ b/buildSrc/src/main/java/Config.kt @@ -1,14 +1,9 @@ object Config { - val AGP = System.getenv("VERSION_AGP") ?: "9.4.0" val kotlinStdLib = "stdlib-jdk8" val kotlinStdLibVersionAndroid = "1.9.24" val kotlinTestJunit = "test-junit" - object BuildPlugins { - val androidGradle = "com.android.tools.build:gradle:$AGP" - } - object Android { val abiFilters = listOf("x86", "armeabi-v7a", "x86_64", "arm64-v8a") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7cbe8e626c8..977aac190d0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -38,8 +38,7 @@ retrofit = "2.9.0" room2 = "2.8.4" room3 = "3.0.0-rc01" sagp = "6.13.0" -# Compile-time only, for the AGP types the build-logic convention plugins use. The AGP that -# actually runs the build comes from the root buildscript (Config.AGP, overridable via VERSION_AGP). +# The AGP matrix job overrides this with the VERSION_AGP env var, through each build's settings. agp = "9.4.0" sqlite = "2.6.2" sqliteRc = "2.7.0-rc01" # Required by Room3 3.0.0-rc* @@ -59,7 +58,8 @@ compileSdkMinor = "2" minSdk = "21" [plugins] -kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +android-application = { id = "com.android.application", version.ref = "agp" } +kotlin-android ={ id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-spring = { id = "org.jetbrains.kotlin.plugin.spring", version.ref = "kotlin" } kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } diff --git a/sentry-android-integration-tests/sentry-uitest-android-critical/build.gradle.kts b/sentry-android-integration-tests/sentry-uitest-android-critical/build.gradle.kts index e606ab52553..8a22b91890c 100644 --- a/sentry-android-integration-tests/sentry-uitest-android-critical/build.gradle.kts +++ b/sentry-android-integration-tests/sentry-uitest-android-critical/build.gradle.kts @@ -1,4 +1,5 @@ import io.gitlab.arturbosch.detekt.Detekt +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion plugins { id("com.android.application") @@ -35,14 +36,12 @@ android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get() } androidComponents.beforeVariants { - it.enable = !Config.Android.shouldSkipDebugVariant(it.buildType) + it.enable = it.buildType != "debug" } } dependencies { - implementation( - kotlin(Config.kotlinStdLib, org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION) - ) + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(libs.androidx.activity.compose) implementation(libs.androidx.compose.foundation) implementation(libs.androidx.compose.material3) diff --git a/sentry-android-integration-tests/sentry-uitest-android/build.gradle.kts b/sentry-android-integration-tests/sentry-uitest-android/build.gradle.kts index 8f479470cac..53cc88fec46 100644 --- a/sentry-android-integration-tests/sentry-uitest-android/build.gradle.kts +++ b/sentry-android-integration-tests/sentry-uitest-android/build.gradle.kts @@ -1,5 +1,6 @@ import io.gitlab.arturbosch.detekt.Detekt import net.ltgt.gradle.errorprone.errorprone +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion plugins { id("com.android.application") @@ -86,9 +87,7 @@ if (applySentryIntegrations) { } dependencies { - implementation( - kotlin(Config.kotlinStdLib, org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION) - ) + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) if (applySentryIntegrations) { implementation(projects.sentryAndroid) diff --git a/sentry-android-integration-tests/test-app-size/build.gradle.kts b/sentry-android-integration-tests/test-app-size/build.gradle.kts index 7bebbc6cfd0..6260c761d53 100644 --- a/sentry-android-integration-tests/test-app-size/build.gradle.kts +++ b/sentry-android-integration-tests/test-app-size/build.gradle.kts @@ -31,7 +31,7 @@ android { targetCompatibility = JavaVersion.VERSION_17 } androidComponents.beforeVariants { - it.enable = !Config.Android.shouldSkipDebugVariant(it.buildType) + it.enable = it.buildType != "debug" } } diff --git a/sentry-samples/sentry-samples-android/build.gradle.kts b/sentry-samples/sentry-samples-android/build.gradle.kts index a9d4ea8ac5f..28d8748faa9 100644 --- a/sentry-samples/sentry-samples-android/build.gradle.kts +++ b/sentry-samples/sentry-samples-android/build.gradle.kts @@ -5,6 +5,7 @@ import io.sentry.android.gradle.extensions.InstrumentationFeature import io.sentry.android.gradle.extensions.SentryPluginExtension import org.apache.tools.ant.taskdefs.condition.Os import org.gradle.internal.extensions.stdlib.capitalized +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion plugins { id("com.android.application") @@ -64,7 +65,7 @@ android { } } - ndk { abiFilters.addAll(Config.Android.abiFilters) } + ndk { abiFilters.addAll(listOf("x86", "armeabi-v7a", "x86_64", "arm64-v8a")) } } lint { @@ -172,9 +173,7 @@ sqldelight { } dependencies { - implementation( - kotlin(Config.kotlinStdLib, org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION) - ) + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentryAndroid) implementation(projects.sentryAndroidFragment) diff --git a/sentry-samples/sentry-samples-netflix-dgs/build.gradle.kts b/sentry-samples/sentry-samples-netflix-dgs/build.gradle.kts index 90bc1ffc86f..e7ddb9dad92 100644 --- a/sentry-samples/sentry-samples-netflix-dgs/build.gradle.kts +++ b/sentry-samples/sentry-samples-netflix-dgs/build.gradle.kts @@ -1,4 +1,5 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import io.sentry.gradle.MergeSpringMetadataAction +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -22,8 +23,8 @@ java.targetCompatibility = JavaVersion.VERSION_1_8 dependencies { implementation(platform(libs.springboot2.bom)) implementation(libs.springboot.starter.web) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBootStarter) implementation(projects.sentryGraphql) implementation(platform("com.netflix.graphql.dgs:graphql-dgs-platform-dependencies:4.9.2")) diff --git a/sentry-samples/sentry-samples-spring-7/build.gradle.kts b/sentry-samples/sentry-samples-spring-7/build.gradle.kts index 83017cba374..bea3cfec243 100644 --- a/sentry-samples/sentry-samples-spring-7/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-7/build.gradle.kts @@ -1,4 +1,4 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.springframework.boot.gradle.plugin.SpringBootPlugin @@ -29,13 +29,13 @@ dependencyManagement { } dependencies { - implementation(Config.Libs.springWeb) - implementation(Config.Libs.springAop) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.springSecurityWeb) - implementation(Config.Libs.springSecurityConfig) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.springframework:spring-webmvc") + implementation("org.springframework:spring-aop") + implementation("org.aspectj:aspectjweaver") + implementation("org.springframework.security:spring-security-web") + implementation("org.springframework.security:spring-security-config") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpring7) implementation(projects.sentryLogback) implementation(projects.sentryAsyncProfiler) diff --git a/sentry-samples/sentry-samples-spring-boot-4-log4j2/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4-log4j2/build.gradle.kts index 86ae3560d22..b268e0a8ac6 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-log4j2/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4-log4j2/build.gradle.kts @@ -1,4 +1,4 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -36,9 +36,9 @@ dependencies { implementation(libs.springboot4.starter.websocket) implementation(libs.springboot4.starter.restclient) implementation(libs.springboot4.starter.webclient) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.aspectj:aspectjweaver") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBoot4Starter) implementation(projects.sentryGraphql22) implementation(projects.sentryQuartz) diff --git a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/build.gradle.kts index b8f4cf762a4..d3951974a34 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/build.gradle.kts @@ -1,4 +1,4 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -36,9 +36,9 @@ dependencies { implementation(libs.springboot4.starter.websocket) implementation(libs.springboot4.starter.webclient) implementation(libs.springboot4.starter.restclient) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.aspectj:aspectjweaver") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBoot4Starter) implementation(projects.sentryLogback) implementation(projects.sentryGraphql22) diff --git a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/build.gradle.kts index 8e9d87bbf24..f022badf942 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/build.gradle.kts @@ -1,4 +1,4 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.springframework.boot.gradle.tasks.run.BootRun @@ -37,9 +37,9 @@ dependencies { implementation(libs.springboot4.starter.websocket) implementation(libs.springboot4.starter.webclient) implementation(libs.springboot4.starter.restclient) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.aspectj:aspectjweaver") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBoot4Starter) implementation(projects.sentryLogback) implementation(projects.sentryGraphql22) diff --git a/sentry-samples/sentry-samples-spring-boot-4-otlp/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4-otlp/build.gradle.kts index bad23b8167a..c0b0949f7f0 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-otlp/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4-otlp/build.gradle.kts @@ -1,4 +1,4 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -36,9 +36,9 @@ dependencies { implementation(libs.springboot4.starter.websocket) implementation(libs.springboot4.starter.restclient) implementation(libs.springboot4.starter.webclient) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.aspectj:aspectjweaver") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBoot4Starter) implementation(projects.sentryLogback) implementation(projects.sentryGraphql22) diff --git a/sentry-samples/sentry-samples-spring-boot-4-webflux/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4-webflux/build.gradle.kts index 6b1f3d91770..a4919fcbafa 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-webflux/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4-webflux/build.gradle.kts @@ -1,4 +1,4 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -13,8 +13,8 @@ group = "io.sentry.sample.spring-boot-4-webflux" version = "0.0.1-SNAPSHOT" dependencies { - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBoot4Starter) implementation(projects.sentryLogback) implementation(projects.sentryJdbc) diff --git a/sentry-samples/sentry-samples-spring-boot-4/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4/build.gradle.kts index 7d83c62b2b9..f680328befd 100644 --- a/sentry-samples/sentry-samples-spring-boot-4/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4/build.gradle.kts @@ -1,4 +1,4 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -36,9 +36,9 @@ dependencies { implementation(libs.springboot4.starter.websocket) implementation(libs.springboot4.starter.restclient) implementation(libs.springboot4.starter.webclient) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.aspectj:aspectjweaver") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBoot4Starter) implementation(projects.sentryLogback) implementation(projects.sentryGraphql22) diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta-log4j2/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-jakarta-log4j2/build.gradle.kts index 06314c2b28f..b195f560011 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta-log4j2/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-jakarta-log4j2/build.gradle.kts @@ -1,4 +1,4 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -38,9 +38,9 @@ dependencies { implementation(libs.springboot3.starter.web) implementation(libs.springboot3.starter.webflux) implementation(libs.springboot3.starter.websocket) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.aspectj:aspectjweaver") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBootStarterJakarta) implementation(projects.sentryLog4j2) implementation("org.springframework.boot:spring-boot-starter-log4j2") diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/build.gradle.kts index 883c622d6ee..bbc6bebdcd9 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/build.gradle.kts @@ -1,4 +1,4 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -39,9 +39,9 @@ dependencies { implementation(libs.springboot3.starter.web) implementation(libs.springboot3.starter.webflux) implementation(libs.springboot3.starter.websocket) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.aspectj:aspectjweaver") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBootStarterJakarta) implementation(projects.sentryLogback) implementation(projects.sentryGraphql22) diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/build.gradle.kts index e6d7d9c31ba..1e41692fb2e 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/build.gradle.kts @@ -1,4 +1,4 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.springframework.boot.gradle.tasks.run.BootRun @@ -39,9 +39,9 @@ dependencies { implementation(libs.springboot3.starter.web) implementation(libs.springboot3.starter.webflux) implementation(libs.springboot3.starter.websocket) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.aspectj:aspectjweaver") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBootStarterJakarta) implementation(projects.sentryLogback) implementation(projects.sentryGraphql22) diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-jakarta/build.gradle.kts index e3591289cdb..d8ccb27dbf3 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-jakarta/build.gradle.kts @@ -1,4 +1,4 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -38,9 +38,9 @@ dependencies { implementation(libs.springboot3.starter.web) implementation(libs.springboot3.starter.webflux) implementation(libs.springboot3.starter.websocket) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.aspectj:aspectjweaver") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBootStarterJakarta) implementation(projects.sentryLogback) implementation(projects.sentryGraphql22) diff --git a/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts index a5ccb8d3224..b1d76690274 100644 --- a/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts @@ -1,4 +1,5 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import io.sentry.gradle.MergeSpringMetadataAction +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -58,9 +59,9 @@ dependencies { implementation(libs.springboot.starter.web) implementation(libs.springboot.starter.webflux) implementation(libs.springboot.starter.websocket) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.aspectj:aspectjweaver") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBootStarter) implementation(projects.sentryLogback) if (includeGraphql) { diff --git a/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts index dbb4d66dea3..e520af4668f 100644 --- a/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts @@ -1,4 +1,5 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import io.sentry.gradle.MergeSpringMetadataAction +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -57,9 +58,9 @@ dependencies { implementation(libs.springboot.starter.web) implementation(libs.springboot.starter.webflux) implementation(libs.springboot.starter.websocket) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.aspectj:aspectjweaver") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBootStarter) implementation(projects.sentryLogback) if (includeGraphql) { diff --git a/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/build.gradle.kts index e9d4b2f6905..137c5e09407 100644 --- a/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/build.gradle.kts @@ -1,4 +1,4 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -22,8 +22,8 @@ dependencyManagement { extra["kotlin-coroutines.version"] = "1.9.0" dependencies { - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBootStarterJakarta) implementation(projects.sentryLogback) implementation(projects.sentryJdbc) diff --git a/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts index 0294f940e9c..ed8151a7bd5 100644 --- a/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts @@ -1,4 +1,5 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import io.sentry.gradle.MergeSpringMetadataAction +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -42,8 +43,8 @@ dependencies { implementation(libs.springboot.starter.graphql) } implementation(libs.springboot.starter.webflux) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBootStarter) implementation(projects.sentryLogback) if (includeGraphql) { diff --git a/sentry-samples/sentry-samples-spring-boot/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot/build.gradle.kts index 15b90447529..b052596ea5a 100644 --- a/sentry-samples/sentry-samples-spring-boot/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot/build.gradle.kts @@ -1,4 +1,5 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import io.sentry.gradle.MergeSpringMetadataAction +import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -64,9 +65,9 @@ dependencies { implementation(libs.spring.kafka2) implementation(projects.sentryKafka) } - implementation(Config.Libs.aspectj) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) + implementation("org.aspectj:aspectjweaver") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8", getKotlinPluginVersion())) implementation(projects.sentrySpringBootStarter) implementation(projects.sentryLogback) if (includeGraphql) { diff --git a/sentry-samples/sentry-samples-spring-jakarta/build.gradle.kts b/sentry-samples/sentry-samples-spring-jakarta/build.gradle.kts index 3a159bb6e11..683031cfb62 100644 --- a/sentry-samples/sentry-samples-spring-jakarta/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-jakarta/build.gradle.kts @@ -27,13 +27,13 @@ dependencyManagement { } dependencies { - implementation(Config.Libs.springWeb) - implementation(Config.Libs.springAop) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.springSecurityWeb) - implementation(Config.Libs.springSecurityConfig) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib)) + implementation("org.springframework:spring-webmvc") + implementation("org.springframework:spring-aop") + implementation("org.aspectj:aspectjweaver") + implementation("org.springframework.security:spring-security-web") + implementation("org.springframework.security:spring-security-config") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8")) implementation(projects.sentrySpringJakarta) implementation(projects.sentryLogback) implementation(projects.sentryAsyncProfiler) diff --git a/sentry-samples/sentry-samples-spring/build.gradle.kts b/sentry-samples/sentry-samples-spring/build.gradle.kts index b64fcab92a3..ba97f3e7045 100644 --- a/sentry-samples/sentry-samples-spring/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring/build.gradle.kts @@ -38,13 +38,13 @@ dependencyManagement { } dependencies { - implementation(Config.Libs.springWeb) - implementation(Config.Libs.springAop) - implementation(Config.Libs.aspectj) - implementation(Config.Libs.springSecurityWeb) - implementation(Config.Libs.springSecurityConfig) - implementation(Config.Libs.kotlinReflect) - implementation(kotlin(Config.kotlinStdLib)) + implementation("org.springframework:spring-webmvc") + implementation("org.springframework:spring-aop") + implementation("org.aspectj:aspectjweaver") + implementation("org.springframework.security:spring-security-web") + implementation("org.springframework.security:spring-security-config") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation(kotlin("stdlib-jdk8")) implementation(projects.sentrySpring) implementation(projects.sentryLogback) implementation(projects.sentryAsyncProfiler) diff --git a/settings.gradle.kts b/settings.gradle.kts index 5947411dd56..99d9f516e4c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -15,6 +15,18 @@ pluginManagement { gradlePluginPortal() google() } + + // Every build in a composite must use the same AGP, so each build's settings applies the AGP + // matrix job's override. + System.getenv("VERSION_AGP")?.let { agpVersion -> + resolutionStrategy { + eachPlugin { + if (requested.id.id.startsWith("com.android")) { + useVersion(agpVersion) + } + } + } + } } plugins {