From 5701a42f656d6b025f54078771d89ac8356a95bc Mon Sep 17 00:00:00 2001 From: Prashanth Rudrabhat Date: Tue, 8 Nov 2022 09:45:19 -0800 Subject: [PATCH] Upgrade AGP, Gradle, language dependencies - Upgrades - Gradle distribution 7.5 - Gradle 7.3.1 - Java 1.8 - Kotlin 1.6.2 - jacoco 0.8.8 - Expand .gitignore - Restructure plugin declarations - Fix functional test configuration (dex, androidx.test:core)) --- .gitignore | 19 +++++- code/app/build.gradle | 24 +++---- code/build.gradle | 66 ++++++++----------- code/edgeidentity/build.gradle | 16 +++-- code/gradle/wrapper/gradle-wrapper.properties | 4 +- code/settings.gradle | 17 +++++ 6 files changed, 88 insertions(+), 58 deletions(-) diff --git a/.gitignore b/.gitignore index f86dd9f4..74484c94 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,21 @@ ci/ **/.idea/ # Secrets -**/*/values/secrets.xml \ No newline at end of file +**/*/values/secrets.xml + +# Local configuration file (sdk path, etc) +local.properties + +# Android Studio Navigation editor temp files +.navigation/ + +# Coverage tools +jacoco.exec + +# Application files +*.apk +*.aar +*.aab + +# Dex files for ART/Dalvik VM +*.dex \ No newline at end of file diff --git a/code/app/build.gradle b/code/app/build.gradle index c3abf6ab..374d9e5f 100644 --- a/code/app/build.gradle +++ b/code/app/build.gradle @@ -1,7 +1,8 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' -apply plugin: "com.diffplug.spotless" +plugins { + id 'com.android.application' + id 'com.diffplug.spotless' + id 'org.jetbrains.kotlin.android' +} spotless { kotlin { @@ -12,14 +13,14 @@ spotless { } android { - compileSdkVersion 31 + compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { applicationId "com.adobe.marketing.edge.identity.app" - minSdkVersion 19 - targetSdkVersion 31 - versionCode 1 - versionName "1.0" + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode rootProject.ext.versionCode + versionName project.property('moduleVersion') as String ?: "1.0" multiDexEnabled = true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -35,14 +36,15 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + kotlinOptions { - jvmTarget = '1.8' + jvmTarget = rootProject.ext.kotlinJvmTarget } } dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation "org.jetbrains.kotlin:kotlin-stdlib:${rootProject.ext.kotlinVersion}" implementation 'androidx.core:core-ktx:1.3.2' implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' diff --git a/code/build.gradle b/code/build.gradle index bd8d8c2e..66b28ce6 100644 --- a/code/build.gradle +++ b/code/build.gradle @@ -1,53 +1,43 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. -buildscript { - ext { - kotlin_version = '1.5.0' - } - repositories { - google() - mavenCentral() - maven { url "https://plugins.gradle.org/m2/" } - maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } - } - dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath "com.diffplug.spotless:spotless-plugin-gradle:5.12.5" - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -allprojects { - repositories { - google() - mavenCentral() - maven { url "https://plugins.gradle.org/m2/" } - maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } - } - - apply plugin: 'maven-publish' -} -task clean(type: Delete) { - delete rootProject.buildDir +plugins { + id 'com.android.application' version '7.3.1' apply false + id 'com.android.library' version '7.3.1' apply false + id 'com.diffplug.gradle.spotless' version '6.11.0' apply false + id 'org.jetbrains.kotlin.android' version "1.6.21" apply false } ext { // android config minSdkVersion = 19 - targetSdkVersion = 29 - compileSdkVersion = 29 + targetSdkVersion = 33 + compileSdkVersion = 33 versionCode = 1 // java config - sourceCompatibility = JavaVersion.VERSION_1_7 - targetCompatibility = JavaVersion.VERSION_1_7 + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 - // dependencies + // kotlin config + kotlinVersion = "1.6.21" + kotlinJvmTarget = "1.8" + + // test dependencies junitVersion = "1.1.2" mockitoCoreVersion = "2.28.2" - buildToolsVersion = "29.0.3" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - jacocoVersion = "0.8.5" + + // build tools + buildToolsVersion = "29.0.3" + + // spotless + prettierVersion = "2.7.1" + prettierPluginJavaVersion = "1.6.2" + + // jacoco + jacocoVersion = "0.8.8" +} + +task clean(type: Delete) { + delete rootProject.buildDir } \ No newline at end of file diff --git a/code/edgeidentity/build.gradle b/code/edgeidentity/build.gradle index 74650b45..ca8d89ed 100644 --- a/code/edgeidentity/build.gradle +++ b/code/edgeidentity/build.gradle @@ -1,8 +1,10 @@ -apply plugin: 'com.android.library' -apply plugin: 'jacoco' -apply plugin: 'maven-publish' -apply plugin: 'signing' -apply plugin: "com.diffplug.spotless" +plugins { + id 'com.android.library' + id 'jacoco' + id 'maven-publish' + id 'signing' + id 'com.diffplug.spotless' +} jacoco { toolVersion = rootProject.ext.jacocoVersion @@ -31,6 +33,7 @@ android { testInstrumentationRunner rootProject.ext.testInstrumentationRunner consumerProguardFiles "consumer-rules.pro" + multiDexEnabled true } flavorDimensions "target" @@ -218,7 +221,7 @@ task platformUnitTestJacocoReport(type: JacocoReport, dependsOn: "testPhoneDebug additionalClassDirs.setFrom files([debugTree]) additionalSourceDirs.setFrom files(android.sourceSets.main.java.sourceFiles) sourceDirectories.setFrom files(android.sourceSets.phone.java.sourceFiles) - executionData "$buildDir/jacoco/testPhoneDebugUnitTest.exec" + executionData "$buildDir/outputs/unit_test_code_coverage/phoneDebugUnitTest/testPhoneDebugUnitTest.exec" reports { xml.enabled true @@ -259,6 +262,7 @@ dependencies { testImplementation 'org.powermock:powermock-module-junit4:2.0.0' testImplementation 'org.json:json:20180813' + androidTestImplementation "androidx.test:core:1.4.0" androidTestImplementation "androidx.test.ext:junit:${rootProject.ext.junitVersion}" androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' // Using older version of PowerMock as it supports minimum Android API < 26 diff --git a/code/gradle/wrapper/gradle-wrapper.properties b/code/gradle/wrapper/gradle-wrapper.properties index df944bc5..5e4cdd73 100644 --- a/code/gradle/wrapper/gradle-wrapper.properties +++ b/code/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Mar 18 11:50:52 PDT 2022 +#Mon Nov 07 08:48:57 PST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/code/settings.gradle b/code/settings.gradle index fa1b7708..bb5f0304 100644 --- a/code/settings.gradle +++ b/code/settings.gradle @@ -1,3 +1,20 @@ +pluginManagement { + repositories { + gradlePluginPortal() + google() + mavenCentral() + } +} + +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } + } +} + include ':app' include ':edgeidentity' rootProject.name = "edgeidentity-sdk" \ No newline at end of file