121 lines
3.8 KiB
Groovy
121 lines
3.8 KiB
Groovy
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
|
|
|
|
buildscript {
|
|
ext {
|
|
buildConfig = [
|
|
'compileSdk': 31,
|
|
'targetSdk': 31,
|
|
'minSdk': 21,
|
|
'buildTools': '32.0.0',
|
|
'robolectricSdk': 31
|
|
]
|
|
|
|
versions = [
|
|
'kotlin': '1.6.10',
|
|
'kotlinCoroutines': '1.6.0',
|
|
'androidxAppCompat': '1.4.1',
|
|
'androidxActivity': '1.4.0',
|
|
'androidxRecyclerView': '1.2.1',
|
|
'androidxLifecycle': '2.4.1',
|
|
'androidxAnnotation': '1.3.0',
|
|
'androidxBiometric': '1.1.0',
|
|
'androidxNavigation': '2.4.1',
|
|
'androidxConstraintLayout': '2.1.3',
|
|
'androidxWorkManager': '2.7.1',
|
|
'androidxFragment': '1.4.1',
|
|
'androidxLocalBroadcastManager': '1.1.0',
|
|
'androidxCore': '1.7.0',
|
|
'androidxCardView': '1.0.0',
|
|
'androidxPreference': '1.2.0',
|
|
'androidxTestCore': '1.4.0',
|
|
'materialComponents': '1.5.0',
|
|
'fastAdapter': '5.6.0',
|
|
'preferencesFix': '1.1.0',
|
|
'okio': '3.0.0',
|
|
'moshi': '1.13.0',
|
|
'timber': '5.0.1',
|
|
'koin': '3.1.5',
|
|
'commonsIo': '2.6',
|
|
'mime4j': '0.8.6',
|
|
'okhttp': '4.9.3',
|
|
'minidns': '1.0.3',
|
|
'glide': '4.13.1',
|
|
'jsoup': '1.14.3',
|
|
|
|
'androidxTestRunner': '1.4.0',
|
|
'junit': '4.13.2',
|
|
'robolectric': '4.7.3',
|
|
'mockito': '4.3.1',
|
|
'mockitoKotlin': '4.0.0',
|
|
'truth': '1.1.3',
|
|
'turbine': '0.7.0',
|
|
|
|
'ktlint': '0.40.0'
|
|
]
|
|
|
|
javaVersion = JavaVersion.VERSION_1_8
|
|
kotlinJvmVersion = "1.8"
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
google()
|
|
maven { url "https://plugins.gradle.org/m2/" }
|
|
jcenter()
|
|
}
|
|
|
|
dependencies {
|
|
classpath 'com.android.tools.build:gradle:7.1.2'
|
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}"
|
|
classpath "org.jlleitschuh.gradle:ktlint-gradle:10.0.0"
|
|
}
|
|
}
|
|
|
|
project.ext {
|
|
testCoverage = project.hasProperty('testCoverage')
|
|
}
|
|
|
|
subprojects {
|
|
repositories {
|
|
mavenCentral()
|
|
google()
|
|
jcenter()
|
|
maven { url 'https://jitpack.io' }
|
|
}
|
|
|
|
configurations.all {
|
|
resolutionStrategy.dependencySubstitution {
|
|
substitute module("androidx.core:core") using module("androidx.core:core:${versions.androidxCore}")
|
|
substitute module("androidx.activity:activity") using module("androidx.activity:activity:${versions.androidxActivity}")
|
|
substitute module("androidx.appcompat:appcompat") using module("androidx.appcompat:appcompat:${versions.androidxAppCompat}")
|
|
substitute module("androidx.preference:preference") using module("androidx.preference:preference:${versions.androidxPreference}")
|
|
}
|
|
}
|
|
|
|
tasks.withType(Test) {
|
|
testLogging {
|
|
exceptionFormat "full"
|
|
showCauses true
|
|
showExceptions true
|
|
showStackTraces true
|
|
}
|
|
}
|
|
|
|
tasks.withType(KotlinCompile) {
|
|
kotlinOptions {
|
|
freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
|
|
}
|
|
}
|
|
|
|
apply plugin: 'org.jlleitschuh.gradle.ktlint'
|
|
ktlint {
|
|
version = versions.ktlint
|
|
}
|
|
}
|
|
|
|
tasks.register('testsOnCi') {
|
|
dependsOn getSubprojects()
|
|
.collect { project -> project.tasks.withType(Test) }
|
|
.flatten()
|
|
.findAll { task -> task.name in ['testDebugUnitTest', 'test'] }
|
|
}
|