Imran/Malic
04/16/2019, 6:19 PMCzar
04/16/2019, 6:24 PM*.class
files just like java does.commanderpepper
04/16/2019, 6:40 PMImran/Malic
04/16/2019, 6:52 PMplugins {
id 'org.jetbrains.kotlin.jvm' version '1.3.30'
id 'application'
}
group 'boringworks.kaas'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
sourceSets {
main.kotlin.srcDirs += 'src/main/kotlin/org.boringworks'
}
jar {
manifest {
attributes 'Main-Class': 'org.boringworks.Main'
}
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
archivesBaseName = "kaas-function"
mainClassName = "com.boringworks.Main"
Czar
04/16/2019, 7:58 PM├ build.gradle
├ src
├ main
├ kotlin
├ org
├ boringworks
├ Main.kt
then you do not need sourceSets manipulation, just remove that.
Also you don't need the from
part of the jar
configuration
And lastly, since it is Kotlin and you're probably using package level main
function in the Main.kt
file, your 'Main-Class'
value should be org.boringworks.MainKt
and not Main
plugins {
id 'org.jetbrains.kotlin.jvm' version '1.3.30'
id 'application'
}
group 'boringworks.kaas'
version '1.0-SNAPSHOT'
repositories {
jcenter()
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
jar {
manifest {
attributes 'Main-Class': 'org.boringworks.MainKt'
}
}
archivesBaseName = "kaas-function"
application {
mainClassName = "org.boringworks.MainKt"
}
Imran/Malic
04/16/2019, 8:25 PM$ java -jar build/libs/kaas-function-1.0-SNAPSHOT.jar
Exception in thread "main" java.lang.NoClassDefFoundError: arrow/core/Option
at org.boringworks.MainKt.main(Main.kt:20)
at org.boringworks.MainKt.main(Main.kt)
Caused by: java.lang.ClassNotFoundException: arrow.core.Option
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
compile("io.arrow-kt:arrow-docs:$arrow_version")
compile("io.arrow-kt:arrow-syntax:$arrow_version")
compile("io.arrow-kt:arrow-typeclasses:$arrow_version")
compile("io.arrow-kt:arrow-core-data:$arrow_version")
compile("io.arrow-kt:arrow-extras-data:$arrow_version")
compile("io.arrow-kt:arrow-core-extensions:$arrow_version")
compile("io.arrow-kt:arrow-extras-extensions:$arrow_version")
kapt("io.arrow-kt:arrow-meta:$arrow_version")
Czar
04/17/2019, 6:05 AMImran/Malic
04/17/2019, 6:05 AMCzar
04/17/2019, 6:08 AMImran/Malic
04/17/2019, 6:09 AMCzar
04/17/2019, 9:06 AMStephan Schroeder
04/17/2019, 10:30 AMimport org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.3.30"
application
id("com.github.johnrengelman.shadow") version "5.0.0"
}
application {
mainClassName = "uk.co.mypath.MyMainClass"
}
group = "uk.co.mypath"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
jcenter()
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
tasks {
withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
}