forked from MobileNativeFoundation/Store
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
100 lines (81 loc) · 3.04 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
buildscript {
repositories {
mavenCentral()
maven {
url 'https://plugins.gradle.org/m2/'
}
google()
jcenter()
}
ext.versions = [
androidGradlePlugin : '4.0.0-beta01',
kotlin : '1.3.70',
dokkaGradlePlugin : '0.10.0',
ktlintGradle : '9.1.1',
spotlessGradlePlugin : '3.26.1',
jacocoGradlePlugin : '0.8.5',
binaryCompatibilityValidator: '0.2.1',
]
dependencies {
classpath "com.android.tools.build:gradle:${versions.androidGradlePlugin}"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}"
classpath "org.jetbrains.kotlinx:binary-compatibility-validator:${versions.binaryCompatibilityValidator}"
classpath "org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokkaGradlePlugin}"
classpath "org.jlleitschuh.gradle:ktlint-gradle:${versions.ktlintGradle}"
classpath "com.diffplug.spotless:spotless-plugin-gradle:${versions.spotlessGradlePlugin}"
classpath "org.jacoco:org.jacoco.core:${versions.jacocoGradlePlugin}"
}
}
apply from: 'buildsystem/dependencies.gradle'
apply plugin: 'binary-compatibility-validator'
apiValidation {
ignoredProjects += ["app"]
}
allprojects {
repositories {
mavenCentral()
google()
jcenter()
}
apply plugin: 'org.jlleitschuh.gradle.ktlint'
ktlint {
version = versions.ktlint
disabledRules = ["import-ordering"]
}
// Workaround to prevent Gradle from stealing focus from other apps during tests run/etc.
// https://gist.github.com/artem-zinnatullin/4c250e04636e25797165
tasks.withType(JavaForkOptions) {
jvmArgs '-Djava.awt.headless=true'
}
}
ext {
// POM file
GROUP = "com.dropbox.mobile.store"
VERSION_NAME = "4.0.0-SNAPSHOT"
POM_PACKAGING = "pom"
POM_DESCRIPTION = "Store4 is built with Kotlin Coroutines"
POM_URL = "https://github.com/dropbox/Store/"
POM_SCM_URL = "https://github.com/dropbox/Store/"
POM_SCM_CONNECTION = "scm:git:https://github.com/dropbox/Store.git"
POM_SCM_DEV_CONNECTION = "scm:git:git@github.com:dropbox/Store.git"
POM_LICENCE_NAME = "Apache License"
POM_LICENCE_URL = "http://www.apache.org/licenses/LICENSE-2.0"
POM_LICENCE_DIST = "repo"
POM_DEVELOPER_ID = "dropbox"
POM_DEVELOPER_NAME = "Dropbox"
}
// From command line use: -PdisablePreDex to disable it: primarily for jenkins
project.ext.preDexLibs = !project.hasProperty('disablePreDex')
subprojects {
apply plugin: 'com.diffplug.gradle.spotless'
spotless {
kotlin {
target 'src/**/*.kt'
}
}
def preDexClosure = {
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
}
project.plugins.withType(com.android.build.gradle.AppPlugin).whenPluginAdded(preDexClosure)
project.plugins.withType(com.android.build.gradle.LibraryPlugin).whenPluginAdded(preDexClosure)
}