Revert back to Groovy DSL
The Kotlin DSL's API is extremely terrible and makes the simplest tasks annoying. It also introduces a very noticeable build overhead that I'd rather not have. Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
This commit is contained in:
parent
3fcf242c07
commit
b2d352e3ea
11 changed files with 265 additions and 238 deletions
106
app/build.gradle
Normal file
106
app/build.gradle
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
*/
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id 'kotlin-android'
|
||||||
|
id 'kotlin-kapt'
|
||||||
|
id 'kotlin-android-extensions'
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
defaultConfig {
|
||||||
|
applicationId 'com.zeapo.pwdstore'
|
||||||
|
}
|
||||||
|
|
||||||
|
lintOptions {
|
||||||
|
abortOnError = true // make sure build fails with lint errors!
|
||||||
|
disable 'MissingTranslation', 'PluralsCandidate'
|
||||||
|
}
|
||||||
|
|
||||||
|
packagingOptions {
|
||||||
|
exclude '.readme'
|
||||||
|
exclude 'META-INF/LICENSE.txt'
|
||||||
|
exclude 'META-INF/NOTICE.txt'
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTypes {
|
||||||
|
release {
|
||||||
|
minifyEnabled = true
|
||||||
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||||
|
}
|
||||||
|
debug {
|
||||||
|
applicationIdSuffix = '.debug'
|
||||||
|
versionNameSuffix = '-debug'
|
||||||
|
minifyEnabled = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* To sign release builds, create the file `gradle.properties` in
|
||||||
|
* $HOME/.gradle or in your project directory with this content:
|
||||||
|
*
|
||||||
|
* mStoreFile=/path/to/key.store
|
||||||
|
* mStorePassword=xxx
|
||||||
|
* mKeyAlias=alias
|
||||||
|
* mKeyPassword=xxx
|
||||||
|
*/
|
||||||
|
if (project.hasProperty('mStoreFile') &&
|
||||||
|
project.hasProperty('mStorePassword') &&
|
||||||
|
project.hasProperty('mKeyAlias') &&
|
||||||
|
project.hasProperty('mKeyPassword')) {
|
||||||
|
signingConfigs {
|
||||||
|
release {
|
||||||
|
storeFile = file(project.properties['mStoreFile'] as String)
|
||||||
|
storePassword = project.properties['mStorePassword'] as String
|
||||||
|
keyAlias = project.properties['mKeyAlias'] as String
|
||||||
|
keyPassword = project.properties['mKeyPassword'] as String
|
||||||
|
}
|
||||||
|
}
|
||||||
|
buildTypes.release.signingConfig = signingConfigs.release
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation 'androidx.appcompat:appcompat:' + versions.appcompat
|
||||||
|
implementation 'androidx.cardview:cardview:' + versions.cardview
|
||||||
|
implementation 'androidx.core:core-ktx:' + versions.coreKtx
|
||||||
|
implementation 'androidx.constraintlayout:constraintlayout:' + versions.constraintLayout
|
||||||
|
implementation 'androidx.documentfile:documentfile:' + versions.documentfile
|
||||||
|
implementation 'androidx.preference:preference:' + versions.preference
|
||||||
|
implementation ('androidx.recyclerview:recyclerview:' + versions.recyclerview) {
|
||||||
|
force = true
|
||||||
|
}
|
||||||
|
implementation 'com.google.android.material:material:' + versions.material
|
||||||
|
implementation 'androidx.annotation:annotation:' + versions.annotation
|
||||||
|
implementation 'androidx.biometric:biometric:' + versions.biometric
|
||||||
|
implementation 'org.sufficientlysecure:openpgp-api:' + versions.openpgp
|
||||||
|
implementation('org.eclipse.jgit:org.eclipse.jgit:' + versions.jgit) {
|
||||||
|
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
|
||||||
|
}
|
||||||
|
implementation 'com.jcraft:jsch:' + versions.jsch
|
||||||
|
implementation 'commons-io:commons-io:' + versions.commons_io
|
||||||
|
implementation 'commons-codec:commons-codec:' + versions.commons_codec
|
||||||
|
implementation 'org.sufficientlysecure:sshauthentication-api:' + versions.sshauth
|
||||||
|
|
||||||
|
// Testing-only dependencies
|
||||||
|
androidTestImplementation 'junit:junit:4.13-beta-3'
|
||||||
|
androidTestImplementation 'org.mockito:mockito-core:3.1.0'
|
||||||
|
androidTestImplementation 'androidx.test:runner:1.3.0-alpha02'
|
||||||
|
androidTestImplementation 'androidx.test:rules:1.3.0-alpha02'
|
||||||
|
androidTestImplementation 'androidx.test.ext:junit:1.1.2-alpha02'
|
||||||
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0-alpha02'
|
||||||
|
androidTestImplementation 'androidx.test.espresso:espresso-intents:3.3.0-alpha02'
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.withType(JavaCompile) {
|
||||||
|
options.compilerArgs << '-Xlint:unchecked'
|
||||||
|
options.deprecation = true
|
||||||
|
}
|
||||||
|
tasks.withType(KotlinCompile) {
|
||||||
|
kotlinOptions {
|
||||||
|
jvmTarget = '1.8'
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,114 +0,0 @@
|
||||||
import org.gradle.api.JavaVersion.VERSION_1_8
|
|
||||||
import org.jetbrains.kotlin.config.KotlinCompilerVersion
|
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
|
||||||
|
|
||||||
plugins {
|
|
||||||
id("com.android.application")
|
|
||||||
id("kotlin-android")
|
|
||||||
id("kotlin-android-extensions")
|
|
||||||
id("eclipse")
|
|
||||||
}
|
|
||||||
|
|
||||||
android {
|
|
||||||
compileSdkVersion(29)
|
|
||||||
|
|
||||||
defaultConfig {
|
|
||||||
applicationId = "com.zeapo.pwdstore"
|
|
||||||
minSdkVersion(21)
|
|
||||||
targetSdkVersion(29)
|
|
||||||
versionCode = 10303
|
|
||||||
versionName = "1.3.3"
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
||||||
}
|
|
||||||
|
|
||||||
buildTypes {
|
|
||||||
getByName("debug") {
|
|
||||||
applicationIdSuffix = ".debug"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
compileOptions {
|
|
||||||
sourceCompatibility = VERSION_1_8
|
|
||||||
targetCompatibility = VERSION_1_8
|
|
||||||
}
|
|
||||||
|
|
||||||
lintOptions {
|
|
||||||
isAbortOnError = true // make sure build fails with lint errors!
|
|
||||||
disable("MissingTranslation", "PluralsCandidate")
|
|
||||||
}
|
|
||||||
|
|
||||||
packagingOptions {
|
|
||||||
exclude(".readme")
|
|
||||||
exclude("META-INF/LICENSE.txt")
|
|
||||||
exclude("META-INF/NOTICE.txt")
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* To sign release builds, create the file `gradle.properties` in
|
|
||||||
* $HOME/.gradle or in your project directory with this content:
|
|
||||||
*
|
|
||||||
* mStoreFile=/path/to/key.store
|
|
||||||
* mStorePassword=xxx
|
|
||||||
* mKeyAlias=alias
|
|
||||||
* mKeyPassword=xxx
|
|
||||||
*/
|
|
||||||
if (project.hasProperty("mStoreFile") &&
|
|
||||||
project.hasProperty("mStorePassword") &&
|
|
||||||
project.hasProperty("mKeyAlias") &&
|
|
||||||
project.hasProperty("mKeyPassword")) {
|
|
||||||
signingConfigs {
|
|
||||||
getByName("release") {
|
|
||||||
storeFile = file(project.properties["mStoreFile"] as String)
|
|
||||||
storePassword = project.properties["mStorePassword"] as String
|
|
||||||
keyAlias = project.properties["mKeyAlias"] as String
|
|
||||||
keyPassword = project.properties["mKeyPassword"] as String
|
|
||||||
}
|
|
||||||
}
|
|
||||||
buildTypes.getByName("release").signingConfig = signingConfigs.getByName("release")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation("androidx.appcompat:appcompat:1.1.0")
|
|
||||||
implementation("androidx.cardview:cardview:1.0.0")
|
|
||||||
implementation("androidx.core:core-ktx:1.2.0-beta01")
|
|
||||||
implementation("androidx.constraintlayout:constraintlayout:2.0.0-beta3")
|
|
||||||
implementation("androidx.documentfile:documentfile:1.0.1")
|
|
||||||
implementation("androidx.preference:preference:1.1.0")
|
|
||||||
implementation("androidx.recyclerview:recyclerview:1.1.0-rc01")
|
|
||||||
implementation("com.google.android.material:material:1.1.0-alpha10")
|
|
||||||
implementation("androidx.annotation:annotation:1.1.0")
|
|
||||||
implementation("androidx.biometric:biometric:1.0.0-rc02")
|
|
||||||
implementation("org.sufficientlysecure:openpgp-api:12.0")
|
|
||||||
implementation("org.eclipse.jgit:org.eclipse.jgit:3.7.1.201504261725-r") {
|
|
||||||
exclude(group = "org.apache.httpcomponents", module = "httpclient")
|
|
||||||
}
|
|
||||||
implementation("com.jcraft:jsch:0.1.55")
|
|
||||||
implementation("commons-io:commons-io:2.5")
|
|
||||||
implementation("commons-codec:commons-codec:1.13")
|
|
||||||
implementation("com.jayway.android.robotium:robotium-solo:5.6.3")
|
|
||||||
implementation(kotlin("stdlib-jdk8", KotlinCompilerVersion.VERSION))
|
|
||||||
implementation("org.sufficientlysecure:sshauthentication-api:1.0")
|
|
||||||
|
|
||||||
// Testing-only dependencies
|
|
||||||
androidTestImplementation("junit:junit:4.13-beta-3")
|
|
||||||
androidTestImplementation("org.mockito:mockito-core:3.1.0")
|
|
||||||
androidTestImplementation("androidx.test:runner:1.3.0-alpha02")
|
|
||||||
androidTestImplementation("androidx.test:rules:1.3.0-alpha02")
|
|
||||||
androidTestImplementation("androidx.test.ext:junit:1.1.2-alpha02")
|
|
||||||
androidTestImplementation("androidx.test.espresso:espresso-core:3.3.0-alpha02")
|
|
||||||
androidTestImplementation("androidx.test.espresso:espresso-intents:3.3.0-alpha02")
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks {
|
|
||||||
withType<JavaCompile> {
|
|
||||||
options.compilerArgs.add("-Xlint:unchecked")
|
|
||||||
options.isDeprecation = true
|
|
||||||
}
|
|
||||||
withType<KotlinCompile> {
|
|
||||||
kotlinOptions {
|
|
||||||
jvmTarget = "1.8"
|
|
||||||
freeCompilerArgs = freeCompilerArgs + "-Xnew-inference"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
67
build.gradle
Normal file
67
build.gradle
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
*/
|
||||||
|
buildscript {
|
||||||
|
apply from: rootProject.file('versions.gradle')
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
jcenter()
|
||||||
|
mavenCentral()
|
||||||
|
maven { url 'https://plugins.gradle.org/m2/' }
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
classpath 'com.android.tools.build:gradle:' + versions.gradlePlugin
|
||||||
|
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:' + versions.kotlin
|
||||||
|
classpath 'com.diffplug.spotless:spotless-plugin-gradle:' + versions.spotless
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
allprojects {
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
jcenter()
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
subprojects {
|
||||||
|
apply from: rootProject.file('versions.gradle')
|
||||||
|
apply from: rootProject.file('spotless.gradle')
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
jcenter()
|
||||||
|
}
|
||||||
|
if (plugins.hasPlugin('kotlin-android')) {
|
||||||
|
dependencies {
|
||||||
|
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:' + versions.kotlin
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (it.name == 'app') {
|
||||||
|
apply plugin: 'com.android.application'
|
||||||
|
} else {
|
||||||
|
apply plugin: 'com.android.library'
|
||||||
|
}
|
||||||
|
android {
|
||||||
|
compileSdkVersion versions.compileSdk
|
||||||
|
buildToolsVersion = versions.buildTools
|
||||||
|
defaultConfig {
|
||||||
|
minSdkVersion versions.minSdk
|
||||||
|
targetSdkVersion versions.targetSdk
|
||||||
|
versionCode versions.versionCode
|
||||||
|
versionName versions.versionName
|
||||||
|
}
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||||
|
targetCompatibility = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
apply from: rootProject.file('spotless.root.gradle')
|
||||||
|
|
||||||
|
tasks {
|
||||||
|
wrapper {
|
||||||
|
distributionType = Wrapper.DistributionType.ALL
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,53 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
|
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
|
||||||
*/
|
|
||||||
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
|
|
||||||
|
|
||||||
buildscript {
|
|
||||||
repositories {
|
|
||||||
google()
|
|
||||||
jcenter()
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
classpath("com.android.tools.build:gradle:3.5.0")
|
|
||||||
classpath(kotlin("gradle-plugin", "1.3.50"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
plugins {
|
|
||||||
id("com.github.ben-manes.versions") version "0.27.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
allprojects {
|
|
||||||
repositories {
|
|
||||||
google()
|
|
||||||
jcenter()
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tasks {
|
|
||||||
named<DependencyUpdatesTask>("dependencyUpdates") {
|
|
||||||
resolutionStrategy {
|
|
||||||
componentSelection {
|
|
||||||
all {
|
|
||||||
if (listOf("commons-io", "org.eclipse.jgit").contains(candidate.group)) {
|
|
||||||
reject("Blacklisted package")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
checkForGradleUpdate = true
|
|
||||||
outputFormatter = "json"
|
|
||||||
outputDir = "build/dependencyUpdates"
|
|
||||||
reportfileName = "report"
|
|
||||||
}
|
|
||||||
|
|
||||||
named<Wrapper>("wrapper") {
|
|
||||||
gradleVersion = "5.6.3"
|
|
||||||
distributionType = Wrapper.DistributionType.ALL
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
configureSpotless()
|
|
|
@ -1,20 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
|
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
|
||||||
*/
|
|
||||||
plugins {
|
|
||||||
`kotlin-dsl`
|
|
||||||
}
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
maven("https://plugins.gradle.org/m2/")
|
|
||||||
jcenter()
|
|
||||||
}
|
|
||||||
|
|
||||||
kotlinDslPluginOptions {
|
|
||||||
experimentalWarning.set(false)
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation("com.diffplug.spotless:spotless-plugin-gradle:3.24.3")
|
|
||||||
}
|
|
|
@ -1,51 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
|
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
|
||||||
*/
|
|
||||||
import com.diffplug.gradle.spotless.SpotlessExtension
|
|
||||||
import com.diffplug.gradle.spotless.SpotlessPlugin
|
|
||||||
import org.gradle.api.Project
|
|
||||||
import org.gradle.kotlin.dsl.apply
|
|
||||||
import org.gradle.kotlin.dsl.configure
|
|
||||||
|
|
||||||
val kotlinLicenseHeader = """/*
|
|
||||||
* Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
|
|
||||||
* SPDX-License-Identifier: GPL-3.0-only
|
|
||||||
*/
|
|
||||||
""".trimIndent()
|
|
||||||
|
|
||||||
fun Project.configureSpotless() {
|
|
||||||
apply<SpotlessPlugin>()
|
|
||||||
|
|
||||||
configure<SpotlessExtension> {
|
|
||||||
java {
|
|
||||||
target("**/src/main/**/*.java")
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
@Suppress("INACCESSIBLE_TYPE")
|
|
||||||
licenseHeader(kotlinLicenseHeader)
|
|
||||||
removeUnusedImports()
|
|
||||||
googleJavaFormat().aosp()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
|
|
||||||
kotlinGradle {
|
|
||||||
target("*.gradle.kts", "gradle/*.gradle.kts", "buildSrc/*.gradle.kts")
|
|
||||||
ktlint("0.31.0").userData(mapOf("indent_size" to "4", "continuation_indent_size" to "4"))
|
|
||||||
@Suppress("INACCESSIBLE_TYPE")
|
|
||||||
licenseHeader(kotlinLicenseHeader, "import|tasks|apply|plugins|include|buildscript")
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
indentWithSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
|
|
||||||
kotlin {
|
|
||||||
target("**/src/main/**/*.kt", "buildSrc/**/*.kt")
|
|
||||||
ktlint("0.31.0").userData(mapOf("indent_size" to "4", "continuation_indent_size" to "4"))
|
|
||||||
@Suppress("INACCESSIBLE_TYPE")
|
|
||||||
licenseHeader(kotlinLicenseHeader, "import|package|class|object|@file")
|
|
||||||
trimTrailingWhitespace()
|
|
||||||
indentWithSpaces()
|
|
||||||
endWithNewline()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
32
spotless.gradle
Normal file
32
spotless.gradle
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
*/
|
||||||
|
apply plugin: 'com.diffplug.gradle.spotless'
|
||||||
|
|
||||||
|
spotless {
|
||||||
|
format 'xml', {
|
||||||
|
target '**/src/**/*.xml'
|
||||||
|
indentWithSpaces(4)
|
||||||
|
trimTrailingWhitespace()
|
||||||
|
endWithNewline()
|
||||||
|
}
|
||||||
|
|
||||||
|
java {
|
||||||
|
target '**/src/**/*.java'
|
||||||
|
trimTrailingWhitespace()
|
||||||
|
licenseHeaderFile rootProject.file('spotless.license')
|
||||||
|
removeUnusedImports()
|
||||||
|
googleJavaFormat().aosp()
|
||||||
|
endWithNewline()
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
target '**/src/**/*.kt'
|
||||||
|
ktlint('0.35.0').userData(['indent_size': '4', 'continuation_indent_size': '8'])
|
||||||
|
licenseHeaderFile rootProject.file('spotless.license')
|
||||||
|
trimTrailingWhitespace()
|
||||||
|
indentWithSpaces()
|
||||||
|
endWithNewline()
|
||||||
|
}
|
||||||
|
}
|
4
spotless.license
Normal file
4
spotless.license
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
*/
|
15
spotless.root.gradle
Normal file
15
spotless.root.gradle
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
*/
|
||||||
|
apply plugin: 'com.diffplug.gradle.spotless'
|
||||||
|
|
||||||
|
spotless {
|
||||||
|
groovyGradle {
|
||||||
|
target '**/*.gradle', '*.gradle'
|
||||||
|
licenseHeaderFile 'spotless.license', 'import|tasks|apply|plugins|include|buildscript|ext|android'
|
||||||
|
trimTrailingWhitespace()
|
||||||
|
indentWithSpaces()
|
||||||
|
endWithNewline()
|
||||||
|
}
|
||||||
|
}
|
41
versions.gradle
Normal file
41
versions.gradle
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
*/
|
||||||
|
ext {
|
||||||
|
versions = [
|
||||||
|
// Project
|
||||||
|
minSdk: 21,
|
||||||
|
targetSdk: 29,
|
||||||
|
compileSdk: 29,
|
||||||
|
versionCode: 10303,
|
||||||
|
versionName: '1.3.3',
|
||||||
|
buildTools: '29.0.2',
|
||||||
|
|
||||||
|
// Plugins
|
||||||
|
gradlePlugin: '3.5.1',
|
||||||
|
kotlin: '1.3.50',
|
||||||
|
spotless: '3.25.0',
|
||||||
|
|
||||||
|
// AndroidX
|
||||||
|
annotation: '1.1.0',
|
||||||
|
appcompat: '1.1.0',
|
||||||
|
biometric: '1.0.0-rc01',
|
||||||
|
cardview: '1.0.0',
|
||||||
|
constraintLayout: '2.0.0-beta3',
|
||||||
|
coreKtx: '1.2.0-beta01',
|
||||||
|
documentfile: '1.0.1',
|
||||||
|
fragmentKtx: '1.2.0-beta01',
|
||||||
|
material: '1.2.0-alpha01',
|
||||||
|
preference: '1.1.0',
|
||||||
|
recyclerview: '1.0.0',
|
||||||
|
|
||||||
|
// Third party
|
||||||
|
commons_io: '2.5',
|
||||||
|
commons_codec: '1.13',
|
||||||
|
jgit: '3.7.1.201504261725-r',
|
||||||
|
jsch: '0.1.55',
|
||||||
|
openpgp: '12.0',
|
||||||
|
sshauth: '1.0'
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in a new issue