-
Notifications
You must be signed in to change notification settings - Fork 4
/
build.gradle
94 lines (75 loc) · 3.51 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
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply(from: './versionsPlugin.gradle')
buildscript({
apply(from: 'gradle/dependencies.gradle')
repositories({
mavenCentral()
google()
jcenter()
})
dependencies {
classpath 'com.android.tools.build:gradle:' + versions.gradlePluginVersion
classpath 'io.codearte.gradle.nexus:gradle-nexus-staging-plugin:' + versions.nexusStagingPlugin
classpath 'com.diffplug.spotless:spotless-plugin-gradle:' + versions.spotlessPlugin
classpath 'com.github.ben-manes:gradle-versions-plugin:' + versions.versionPlugin
}
})
def static isIntegration(Project project) {
return project.projectDir.parent == new File("integrations").absolutePath
}
// All projects plugins
allprojects({ Project project ->
repositories({
mavenCentral()
google()
jcenter()
})
project.apply(from: rootProject.file('gradle/dependencies.gradle'))
project.apply(from: rootProject.file('gradle/linter.gradle'))
project.ext.isIntegration = isIntegration(project)
// Configuration for integrations
if (project.ext.isIntegration) {
project.ext.integrationName = project.name.substring(1)
project.apply(plugin: 'com.android.library')
project.apply(from: rootProject.file('gradle/attach-jar.gradle'))
project.apply(from: rootProject.file('gradle/sign.gradle'))
project.apply(from: rootProject.file('gradle/upload.gradle'))
// Android configuration
android({
compileSdkVersion(project.ext.versions.compileSdkVersion)
buildToolsVersion(project.ext.versions.buildTools)
defaultConfig({
minSdkVersion(project.ext.versions.minSdkVersion)
targetSdkVersion(project.ext.versions.targetSdkVersion)
})
compileOptions({
sourceCompatibility(JavaVersion.VERSION_1_8)
targetCompatibility(JavaVersion.VERSION_1_8)
})
testOptions({
unitTests({
returnDefaultValues = true
includeAndroidResources = true
})
})
})
// Shared dependencies
dependencies({
api('com.segment.analytics.android:analytics:' + project.ext.versions.anayticsSdkVersion)
testImplementation('com.segment.analytics.android:analytics-tests:' + versions.analyticsTestVersion)
testImplementation('junit:junit:4.12')
testImplementation('com.android.support.test:runner:1.0.2')
testImplementation('org.mockito:mockito-core:' + versions.mockitoVersion)
testImplementation('org.robolectric:robolectric:'+ versions.robolectric)
testImplementation('org.powermock:powermock-core:'+ versions.powerMock)
testImplementation('org.powermock:powermock-module-junit4:'+ versions.powerMockModuleJunit4)
testImplementation('org.powermock:powermock-module-junit4-rule:'+ versions.powerMockModuleJunit4Rule)
testImplementation('org.powermock:powermock-api-mockito2:'+ versions.powerMockApiMockito)
testImplementation('org.powermock:powermock-classloading-xstream:'+ versions.powerMockClassLoadingXstream)
// Required for local (non-android) testing
testImplementation('org.json:json:20190722')
})
}
})
// Root project only plugins
apply(from: rootProject.file('gradle/promote.gradle'))