普通文本  |  128行  |  3.69 KB

buildscript {
    ext.gradle_version = '3.2.0-alpha16'
    ext.studio_version = '26.2.0-alpha16'
    ext.kotlin_version = '1.2.41'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "com.android.tools.build:gradle:$gradle_version"
    }
}

repositories {
    google()
    jcenter()
}

apply plugin: 'application'
apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'maven'

group = 'com.android'
def versionPropertyFile = file('src/main/resources/version.properties')
if (versionPropertyFile.canRead()) {
   Properties versionProps = new Properties()
   versionProps.load(new FileInputStream(versionPropertyFile))
   version = versionProps['metalavaVersion']
} else {
    throw new FileNotFoundException("Could not read $versionPropertyFile")
}

mainClassName = "com.android.tools.metalava.Driver"
applicationDefaultJvmArgs = ["-ea", "-Xms2g", "-Xmx4g"]
sourceCompatibility = 1.8

compileKotlin {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8

    kotlinOptions {
        jvmTarget = "1.8"
        apiVersion = "1.2"
        languageVersion = "1.2"
    }
}

dependencies {
    implementation "com.android.tools.external.org-jetbrains:uast:$studio_version"
    implementation "com.android.tools.external.com-intellij:intellij-core:$studio_version"
    implementation "com.android.tools.lint:lint-api:$studio_version"
    implementation "com.android.tools.lint:lint-checks:$studio_version"
    implementation "com.android.tools.lint:lint-gradle:$studio_version"
    implementation "com.android.tools.lint:lint:$studio_version"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    testImplementation "com.android.tools.lint:lint-tests:$studio_version"
    testImplementation 'junit:junit:4.11'
}

// shadow jar: Includes all dependencies
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2'
    }
}
apply plugin: 'com.github.johnrengelman.shadow'
shadowJar {
   baseName = "metalava-$version-full-SNAPSHOT"
   classifier = null
   version = null
   zip64 = true
}

defaultTasks 'clean', 'installDist'

/*
 * With the build server you are given two env variables:
 * 1. The OUT_DIR is a temporary directory you can use to put things during the build.
 * 2. The DIST_DIR is where you want to save things from the build.
 *
 * The build server will copy the contents of DIST_DIR to somewhere and make it available.
 */
if (System.env.DIST_DIR != null && System.env.OUT_DIR != null) {
    buildDir = file("${System.env.OUT_DIR}/host/common/metalava").getCanonicalFile()
    ext.distDir = file(System.env.DIST_DIR).getCanonicalFile()
    ext.distsDir = ext.distDir

    // The distDir is conveniently named after the build ID.
    version = "${version}.${ext.distDir.name}"
} else {
    buildDir = file('../../out/host/common')
    ext.distDir = file('../../out/dist')
    ext.distsDir = ext.distDir

    // Local builds are not public release candidates.
    version = "${version}-SNAPSHOT"
}

// KtLint: https://github.com/shyiko/ktlint

configurations {
    ktlint
}

dependencies {
    ktlint "com.github.shyiko:ktlint:0.23.1"
}

task ktlint(type: JavaExec, group: "verification") {
    description = "Check Kotlin code style."
    main = "com.github.shyiko.ktlint.Main"
    classpath = configurations.ktlint
    args "src/**/*.kt"
}
check.dependsOn ktlint

task format(type: JavaExec, group: "formatting") {
    description = "Fix Kotlin code style deviations."
    main = "com.github.shyiko.ktlint.Main"
    classpath = configurations.ktlint
    args "-F", "src/**/*.kt"
}