forked from DroidKaigi/conference-app-2019
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
104 lines (94 loc) · 3.78 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
100
101
102
103
104
import com.android.build.gradle.AppPlugin
import com.android.build.gradle.LibraryPlugin
import dependencies.Dep
apply from: file('gradle/dependencyGraph.gradle')
buildscript {
repositories {
google()
jcenter()
maven { url "https://kotlin.bintray.com/kotlinx" }
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
maven { url "https://dl.bintray.com/kotlin/ktor" }
maven { url "http://kotlin.bintray.com/kotlin-dev" }
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath Dep.GradlePlugin.android
classpath Dep.GradlePlugin.kotlin
classpath Dep.GradlePlugin.kotlinSerialization
classpath Dep.GradlePlugin.playServices
classpath Dep.GradlePlugin.safeArgs
classpath Dep.GradlePlugin.jetifier
}
}
allprojects {
repositories {
google()
jcenter()
maven { url "https://kotlin.bintray.com/kotlinx" }
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
maven { url "http://kotlin.bintray.com/kotlin-dev" }
maven { url "https://dl.bintray.com/kotlin/ktor" }
maven { url "https://dl.bintray.com/soywiz/soywiz" }
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
}
tasks.matching { it instanceof Test }.all {
testLogging {
events = ["failed", "skipped"]
outputs.upToDateWhen { false }
showStandardStreams = true
}
}
plugins.whenPluginAdded {
if (it instanceof AppPlugin || it instanceof LibraryPlugin) {
project.with {
configurations {
ktlint
}
dependencies {
ktlint "com.github.shyiko:ktlint:0.29.0"
}
task ktlint(type: JavaExec, group: "verification") {
description = 'Check Kotlin code style.'
args "--android", '--editorconfig', "${rootProject.projectDir}/.editorconfig", "--reporter=html,artifact=me.cassiano:ktlint-html-reporter:0.2.0,output=${buildDir}/ktlint/checkstyle.html", "--reporter=checkstyle,output=${buildDir}/ktlint/checkstyle.xml", 'src/main/**/*.kt', 'src/debug/**/*.kt', 'src/release/**/*.kt'
// https://github.com/shyiko/ktlint/blob/5fe8d0e203275a1a3337dc9777b50ec2a34a58df/ktlint/src/main/kotlin/com/github/shyiko/ktlint/Main.kt
main = 'com.github.shyiko.ktlint.Main'
classpath = configurations.ktlint
}
task ktlintFormat(type: JavaExec, group: "formatting") {
description = "Format Kotlin files based on code style."
classpath = configurations.ktlint
main = "com.github.shyiko.ktlint.Main"
args "--android", '-F', 'src/main/**/*.kt', 'src/debug/**/*.kt', 'src/release/**/*.kt'
}
}
}
}
configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'com.android.tools.build.jetifier') {
details.useVersion '1.0.0-beta02'
}
}
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
task dependencyReport {
doLast {
def file = new File("project-dependencies.dot")
file.delete()
file << "digraph {\n"
file << "splines=ortho\n"
rootProject.childProjects.each { item ->
def from = item.value
from.configurations.compile.dependencies
.matching { it in ProjectDependency }
.each { to -> file << ("\"${from.name}\" -> \"${to.name}\"\n") }
}
file << "}\n"
}
}