-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.gradle
112 lines (93 loc) · 3.12 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
105
106
107
108
109
110
111
112
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
buildscript {
ext.kotlinVersion = '2.0.20'
ext.kotlinCoroutinesVersion = '1.8.1'
ext.ktorVersion = '2.3.12'
ext.okhttpVersion = '4.12.0'
}
plugins {
id("org.jetbrains.kotlin.jvm") version "$kotlinVersion"
id('java-library')
id("org.jetbrains.dokka") version "1.9.20"
id("com.diffplug.spotless") version "5.14.2"
id('jacoco')
id('idea')
id('signing')
id('maven-publish')
id("io.github.gradle-nexus.publish-plugin") version "2.0.0"
}
apply from: 'jacoco.gradle'
apply from: 'release.gradle'
group = "tech.relaycorp"
repositories {
mavenCentral()
// TODO: Remove once all of Dokka's dependencies are available on Maven Central
jcenter()
}
dependencies {
implementation(platform("org.jetbrains.kotlin:kotlin-bom"))
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutinesVersion")
api('tech.relaycorp:awala:[1.69.0,2.0.0)')
testImplementation('tech.relaycorp:awala-testing:1.5.34')
// Handshake nonce signatures
// We're depending on BouncyCastle just so we can use a base64 encoder on Android 21+. See:
// https://github.com/relaycorp/awala-poweb-jvm/issues/66
implementation("org.bouncycastle:bcpkix-jdk15on:1.70")
// HTTP + WebSockets handling
implementation("io.ktor:ktor-client-okhttp:$ktorVersion")
testImplementation("io.ktor:ktor-client-mock:$ktorVersion")
testImplementation("io.ktor:ktor-client-mock-jvm:$ktorVersion")
testImplementation("com.squareup.okhttp3:okhttp:$okhttpVersion")
testImplementation("com.squareup.okhttp3:mockwebserver:$okhttpVersion")
testImplementation("com.squareup.okio:okio:3.9.0")
testImplementation("org.awaitility:awaitility:4.2.2")
testImplementation("org.jetbrains.kotlin:kotlin-test")
testImplementation("org.junit.jupiter:junit-jupiter:5.10.3")
testImplementation("org.junit.jupiter:junit-jupiter-params:5.11.0")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testImplementation("com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0")
testImplementation("org.mockito:mockito-inline:5.2.0")
}
java {
withJavadocJar()
withSourcesJar()
}
kotlin {
explicitApi = 'strict'
}
tasks.withType(KotlinCompile).all {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
freeCompilerArgs += [
"-opt-in=kotlin.RequiresOptIn",
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi"
]
}
}
dokkaHtml.configure {
dokkaSourceSets {
configureEach {
reportUndocumented.set(true)
includes.from("api-docs.md")
}
}
}
spotless {
def ktlintUserData = [
"max_line_length": "100",
"disabled_rules" : "import-ordering"
]
kotlin {
ktlint("0.36.0").userData(ktlintUserData)
}
kotlinGradle {
ktlint().userData(ktlintUserData)
}
}
gradleEnterprise {
buildScan {
termsOfServiceUrl = "https://gradle.com/terms-of-service"
termsOfServiceAgree = "yes"
}
}