From 630d3a111c02b32d975d3d74bd1d5780ee680db5 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Fri, 9 Aug 2024 09:33:57 +0100 Subject: [PATCH 1/4] apply resolver convention and use toolchains in almost all subprojects --- build.gradle.kts | 5 +++-- example/build.gradle | 7 ++++++- maestro-android/build.gradle | 18 +++++++++--------- maestro-cli/build.gradle.kts | 5 +++-- maestro-client/build.gradle | 5 +++-- maestro-ios-driver/build.gradle | 5 +++-- maestro-ios/build.gradle | 5 +++-- maestro-orchestra-models/build.gradle | 5 +++-- maestro-orchestra/build.gradle | 5 +++-- maestro-proto/build.gradle | 5 +++-- maestro-studio/server/build.gradle | 5 +++-- maestro-test/build.gradle | 9 ++------- maestro-utils/build.gradle | 5 +++-- settings.gradle.kts | 5 +++++ 14 files changed, 52 insertions(+), 37 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 8a50185af8..cb1bb041a5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,8 +8,9 @@ plugins { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + toolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + } } detekt { diff --git a/example/build.gradle b/example/build.gradle index 06b03656d7..70de70744c 100644 --- a/example/build.gradle +++ b/example/build.gradle @@ -7,9 +7,14 @@ repositories { mavenLocal() } +java { + toolchain { + languageVersion = JavaLanguageVersion.of(8) + } +} + dependencies { implementation 'dev.mobile:maestro-client:1.0.1' implementation 'dev.mobile:maestro-orchestra:1.0.1' implementation 'dev.mobile:maestro-ios:1.0.1' } - diff --git a/maestro-android/build.gradle b/maestro-android/build.gradle index 9e8b69dc32..73dae59be5 100644 --- a/maestro-android/build.gradle +++ b/maestro-android/build.gradle @@ -31,6 +31,12 @@ kotlin.sourceSets.configureEach { languageSettings.optIn("kotlin.RequiresOptIn") } +java { + toolchain { + languageVersion = JavaLanguageVersion.of(17) + } +} + android { namespace 'dev.mobile.maestro' @@ -60,13 +66,7 @@ android { storeFile file('../debug.keystore') } } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = '1.8' - } + packagingOptions { resources { excludes += ['META-INF/INDEX.LIST', 'META-INF/io.netty.versions.properties'] @@ -84,7 +84,7 @@ tasks.register("copyMaestroAndroid", Copy) { it.doLast { if (JavaVersion.current() != JavaVersion.VERSION_1_8) { - throw new GradleException("This build must be run with java 8") + // throw new GradleException("This build must be run with java 8") } if (!layout.buildDirectory.file(maestroAndroidApkDestPath).get().asFile.exists()) @@ -105,7 +105,7 @@ tasks.register("copyMaestroServer", Copy) { it.doLast { if (JavaVersion.current() != JavaVersion.VERSION_1_8) { - throw new GradleException("This build must be run with java 8") + // throw new GradleException("This build must be run with java 8") } if (!layout.buildDirectory.file(maestroServerApkDestPath).get().asFile.exists()) diff --git a/maestro-cli/build.gradle.kts b/maestro-cli/build.gradle.kts index dbad198dc9..a94722e775 100644 --- a/maestro-cli/build.gradle.kts +++ b/maestro-cli/build.gradle.kts @@ -61,8 +61,9 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + toolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + } } tasks.create("createProperties") { diff --git a/maestro-client/build.gradle b/maestro-client/build.gradle index fe20decfd6..a5edd27f81 100644 --- a/maestro-client/build.gradle +++ b/maestro-client/build.gradle @@ -88,8 +88,9 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + toolchain { + languageVersion = JavaLanguageVersion.of(8) + } } plugins.withId("com.vanniktech.maven.publish") { diff --git a/maestro-ios-driver/build.gradle b/maestro-ios-driver/build.gradle index 3510019d0e..1ff33ec46f 100644 --- a/maestro-ios-driver/build.gradle +++ b/maestro-ios-driver/build.gradle @@ -22,8 +22,9 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + toolchain { + languageVersion = JavaLanguageVersion.of(8) + } } plugins.withId("com.vanniktech.maven.publish") { diff --git a/maestro-ios/build.gradle b/maestro-ios/build.gradle index 118c0d403c..72c4fb5878 100644 --- a/maestro-ios/build.gradle +++ b/maestro-ios/build.gradle @@ -31,8 +31,9 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + toolchain { + languageVersion = JavaLanguageVersion.of(8) + } } plugins.withId("com.vanniktech.maven.publish") { diff --git a/maestro-orchestra-models/build.gradle b/maestro-orchestra-models/build.gradle index 8266b5ab2f..29fdb0c39a 100644 --- a/maestro-orchestra-models/build.gradle +++ b/maestro-orchestra-models/build.gradle @@ -11,8 +11,9 @@ plugins.withId("com.vanniktech.maven.publish") { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + toolchain { + languageVersion = JavaLanguageVersion.of(8) + } } dependencies { diff --git a/maestro-orchestra/build.gradle b/maestro-orchestra/build.gradle index f09c012f93..9d7203d708 100644 --- a/maestro-orchestra/build.gradle +++ b/maestro-orchestra/build.gradle @@ -22,8 +22,9 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + toolchain { + languageVersion = JavaLanguageVersion.of(8) + } } plugins.withId("com.vanniktech.maven.publish") { diff --git a/maestro-proto/build.gradle b/maestro-proto/build.gradle index 7bfe007062..14ded1a998 100644 --- a/maestro-proto/build.gradle +++ b/maestro-proto/build.gradle @@ -5,8 +5,9 @@ plugins { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + toolchain { + languageVersion = JavaLanguageVersion.of(8) + } } jar { diff --git a/maestro-studio/server/build.gradle b/maestro-studio/server/build.gradle index 44271e8393..e86f0bcd66 100644 --- a/maestro-studio/server/build.gradle +++ b/maestro-studio/server/build.gradle @@ -31,8 +31,9 @@ tasks.processResources { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + toolchain { + languageVersion = JavaLanguageVersion.of(8) + } } dependencies { diff --git a/maestro-test/build.gradle b/maestro-test/build.gradle index 409025dfbb..096be18820 100644 --- a/maestro-test/build.gradle +++ b/maestro-test/build.gradle @@ -6,13 +6,8 @@ plugins { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 -} - -tasks.withType(KotlinJvmCompile).configureEach { - compilerOptions { - jvmTarget = JvmTarget.JVM_1_8 + toolchain { + languageVersion = JavaLanguageVersion.of(8) } } diff --git a/maestro-utils/build.gradle b/maestro-utils/build.gradle index d658e1bb8e..3c29c2de5f 100644 --- a/maestro-utils/build.gradle +++ b/maestro-utils/build.gradle @@ -13,8 +13,9 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + toolchain { + languageVersion = JavaLanguageVersion.of(8) + } } plugins.withId("com.vanniktech.maven.publish") { diff --git a/settings.gradle.kts b/settings.gradle.kts index 280155f3c5..9dbf5b8374 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -7,6 +7,11 @@ pluginManagement { gradlePluginPortal() } } + +plugins { + id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" +} + dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { From c02842fd02530a597211ad961b019d4983abad41 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Fri, 9 Aug 2024 11:40:12 +0100 Subject: [PATCH 2/4] upgrade Gradle and AGP --- gradle/libs.versions.toml | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e3dad07270..a282bb824d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ # https://blog.gradle.org/best-practices-naming-version-catalog-entries [versions] -androidPlugin = "4.2.1" +androidPlugin = "8.2.2" androidxEspresso = "3.6.1" androidxTestJunit = "1.2.1" androidxUiautomator = "2.3.0" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index fa0f661b9d..4ea536e779 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=bed1da33cca0f557ab13691c77f38bb67388119e4794d113e051039b80af9bb1 -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip +distributionSha256Sum=d725d707bfabd4dfdc958c624003b3c80accc03f7037b5122c4b1d0ef15cecab +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From d16a1e95b11bd1546b3910074c9f97e31e1aaa8a Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Fri, 9 Aug 2024 11:55:53 +0100 Subject: [PATCH 3/4] fix build failures --- build.gradle.kts | 3 ++- maestro-android/build.gradle | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index cb1bb041a5..b19223a5e7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ @Suppress("DSL_SCOPE_VIOLATION") plugins { alias(libs.plugins.kotlin.jvm) + alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.android.application) apply false alias(libs.plugins.protobuf) apply false alias(libs.plugins.mavenPublish) @@ -9,7 +10,7 @@ plugins { java { toolchain { - languageVersion.set(JavaLanguageVersion.of(8)) + languageVersion.set(JavaLanguageVersion.of(11)) } } diff --git a/maestro-android/build.gradle b/maestro-android/build.gradle index 73dae59be5..22375e7f10 100644 --- a/maestro-android/build.gradle +++ b/maestro-android/build.gradle @@ -1,7 +1,7 @@ plugins { - id 'com.android.application' - id 'kotlin-android' - id "com.google.protobuf" + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.protobuf) } protobuf { From 78ecde45813800cd1f4bab8862499fffa878bb4a Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Mon, 12 Aug 2024 10:34:51 +0100 Subject: [PATCH 4/4] dont add AGP to classpath in top-level build --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index b19223a5e7..a485bb25d8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,7 +2,7 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.kotlin.android) apply false - alias(libs.plugins.android.application) apply false + // alias(libs.plugins.android.application) apply false alias(libs.plugins.protobuf) apply false alias(libs.plugins.mavenPublish) alias(libs.plugins.detekt)