build.gradle 3.7 KB
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext {
        compose_version = '1.1.0-rc01'
        compose_compiler_version = '1.1.0-rc02'
        kotlin_version = '1.6.10'
        java_version = JavaVersion.VERSION_1_8
        dokka_version = '1.5.0'
    }
    repositories {
        google()
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.4'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
        classpath "org.jetbrains.dokka:dokka-gradle-plugin:$dokka_version"
        classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18'
        classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.30.0"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
apply plugin: 'io.codearte.nexus-staging'

subprojects {
    repositories {
        google()
        mavenCentral()
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

nexusStaging {
    serverUrl = "https://s01.oss.sonatype.org/service/local/"
    packageGroup = GROUP
    stagingProfileId = "16b57cbf143daa"
}

ext {
    androidSdk = [
            compileVersion: 31,
            targetVersion : 31,
            minVersion    : 21,
    ]
    versions = [
            androidx_core     : "1.7.0",
            androidx_lifecycle: "2.4.0",
            autoService       : '1.0.1',
            dagger            : "2.27",
            groupie           : "2.9.0",
            junit             : "4.13.2",
            junitJupiter      : "5.5.0",
            coroutines        : "1.6.0",
            lint              : "30.0.1",
            protobuf          : "3.19.4",
    ]
    generated = [
            protoSrc: "$projectDir/protocol",
    ]
    deps = [
            auto              : [
                    'service'           : "com.google.auto.service:auto-service:${versions.autoService}",
                    'serviceAnnotations': "com.google.auto.service:auto-service-annotations:${versions.autoService}",
            ],
            coroutines        : [
                    "lib" : "org.jetbrains.kotlinx:kotlinx-coroutines-android:${versions.coroutines}",
                    "test": "org.jetbrains.kotlinx:kotlinx-coroutines-test: ${versions.coroutines}",
            ],
            timber            : "com.github.ajalt:timberkt:1.5.1",
            // lint
            lint              : "com.android.tools.lint:lint:${versions.lint}",
            lintApi           : "com.android.tools.lint:lint-api:${versions.lint}",
            lintChecks        : "com.android.tools.lint:lint-checks:${versions.lint}",
            lintTests         : "com.android.tools.lint:lint-tests:${versions.lint}",

            // tests
            junit             : "junit:junit:${versions.junit}",
            junitJupiterApi   : "org.junit.jupiter:junit-jupiter-api:${versions.junitJupiter}",
            junitJupiterEngine: "org.junit.jupiter:junit-jupiter-engine:${versions.junitJupiter}",
    ]
    annotations = [
    ]
}
afterEvaluate {
    // These aren't supported for snapshots. From nexus staging plugin.
    if (VERSION_NAME.contains("SNAPSHOT")) {
        ["closeAndReleaseRepository",
         "closeRepository",
         "createRepository",
         "getStagingProfile",
         "releaseRepository"]
                .forEach { taskName ->
                    getTasksByName(taskName, false).forEach { task -> task.enabled = false }
                }
    }
}