plugins { id 'org.jetbrains.kotlin.jvm' version '1.5.10' id 'org.jetbrains.kotlin.plugin.serialization' version '1.5.10' id 'jacoco' } group 'org.wulkanat' version '2.0.0' repositories { mavenCentral() jcenter() maven { url 'https://m2.dv8tion.net/releases' } } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" implementation 'net.dv8tion:JDA:4.2.1_253' implementation 'org.jsoup:jsoup:1.13.1' implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.1' implementation 'com.github.redouane59.twitter:twittered:1.20' implementation group: 'org.quartz-scheduler', name: 'quartz', version: '2.3.2' testImplementation 'io.mockk:mockk:1.11.0' testImplementation 'org.jetbrains.kotlin:kotlin-test-junit:1.5.10' } compileKotlin { kotlinOptions.jvmTarget = "1.8" } compileTestKotlin { kotlinOptions.jvmTarget = "1.8" } jar { manifest { attributes('Main-Class': 'org.wulkanat.MainKt') } } task fatJar(type: Jar) { baseName = project.name + '-all' from((configurations.compile.findAll { !it.path.endsWith(".pom") }).collect { it.isDirectory() ? it : zipTree(it) }) with jar manifest { attributes 'Main-Class': 'org.wulkanat.MainKt', 'Implementation-Version': version } } test { finalizedBy jacocoTestReport // report is always generated after tests run } jacocoTestReport { dependsOn test // tests are required to run before generating the report } apply plugin: 'kotlinx-serialization'