/
build.gradle
96 lines (83 loc) · 3.55 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
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.github.jengelman.gradle.plugins:shadow:5.2.0'
}
}
apply plugin: 'kotlin'
apply plugin: 'application'
apply plugin: 'com.github.johnrengelman.shadow'
group 'com.vilikin'
version '0.0.1'
mainClassName = 'com.vilikin.ApplicationKt'
sourceSets {
main.kotlin.srcDirs = main.java.srcDirs = ['src']
test.kotlin.srcDirs = test.java.srcDirs = ['test']
main.resources.srcDirs = ['resources']
test.resources.srcDirs = ['testresources']
}
repositories {
mavenLocal()
jcenter()
maven { url 'https://kotlin.bintray.com/ktor' }
maven { url 'https://kotlin.bintray.com/kotlinx' }
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "io.ktor:ktor-server-netty:$ktor_version"
implementation "ch.qos.logback:logback-classic:$logback_version"
implementation "io.ktor:ktor-server-core:$ktor_version"
implementation "io.ktor:ktor-gson:$ktor_version"
implementation "io.ktor:ktor-client-core:$ktor_version"
implementation "io.ktor:ktor-client-core-jvm:$ktor_version"
implementation "io.ktor:ktor-client-apache:$ktor_version"
implementation "io.ktor:ktor-client-json-jvm:$ktor_version"
implementation "io.ktor:ktor-client-gson:$ktor_version"
implementation "io.ktor:ktor-client-logging-jvm:$ktor_version"
compile "org.flywaydb:flyway-core:6.2.1"
compile "org.postgresql:postgresql:42.2.10"
compile "com.zaxxer:HikariCP:3.2.0"
compile "com.github.seratch:kotliquery:1.3.0"
compile "org.kodein.di:kodein-di-generic-jvm:6.5.1"
implementation "org.kodein.di:kodein-di-framework-ktor-server-jvm:6.5.1"
testImplementation "io.ktor:ktor-server-tests:$ktor_version"
}
task serverJar(type: ShadowJar, dependsOn: 'build') {
group = "shadow"
description = "Builds an executable Jar for the API server"
manifest.attributes 'Main-Class': 'com.vilikin.ApplicationKt'
classifier = 'server'
from(project.convention.getPlugin(JavaPluginConvention).sourceSets.main.output)
configurations = [project.configurations.runtimeClasspath]
exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA')
}
task liveStreamsUpdateJar(type: ShadowJar) {
group = "shadow"
description = "Builds an executable Jar for the live streams update action"
manifest.attributes 'Main-Class': 'com.vilikin.actions.LiveStreamsUpdateKt'
classifier = 'live-streams-update'
from(project.convention.getPlugin(JavaPluginConvention).sourceSets.main.output)
configurations = [project.configurations.runtimeClasspath]
exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA')
}
task videosUpdateJar(type: ShadowJar) {
group = "shadow"
description = "Builds an executable Jar for the videos update action"
manifest.attributes 'Main-Class': 'com.vilikin.actions.VideosUpdateKt'
classifier = 'videos-update'
from(project.convention.getPlugin(JavaPluginConvention).sourceSets.main.output)
configurations = [project.configurations.runtimeClasspath]
exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA')
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
task stage(dependsOn: ['build', 'clean', 'serverJar', 'liveStreamsUpdateJar', 'videosUpdateJar'])
build.mustRunAfter clean