Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 1059 Vote(s) - 3.49 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Configuring Gradle with Kotlin

#1
I am trying to use kotlin with gradle, but I am unable to succesfully create a project with Intellij Idea 15.

I've create simple project with two modules `hello-java` and `hello-kotlin`.

`hello-java` is plain java project and it is compiling and running perfectly fine.

`hello-kotlin` is simple kotin module, with just one *.kt file and `build.gradle` file.
Here are the sources:

build.gradle

group 'pl.fzymek.kotlin'
version '1.0-SNAPSHOT'

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:0.10.4"
}
}

apply plugin: 'kotlin'
apply plugin: 'application'

mainClassName = 'HelloKotlinKt'

repositories {
mavenCentral()
}

jar {
manifest {
attributes 'Main-Class': mainClassName
}
}

dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:0.10.4"
}

HelloKotlin.kt

fun main(args: Array<String>) {
println("Hello, Kotlin!")
}


main module settings.gradle

include 'hello-java'
include 'hello-kotlin'


When running `gradlew clean build` all projects are compiled successfully, but when running `java -jar hello-kotlin-1.0-SNAPSHOT.jar` I get following error:

Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
at HelloKotlinKt.main(HelloKotlin.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more



What is more, Intellij seems not to recognize `src/main/kotlin` directory as source directory (it's not marked in blue) and I am not able to use auto-complete feature when editing HelloKotlin.kt file.

Here's my project structure in Intellij project window

[![enter image description here][1]][1]

I've tried using Intellij option to configure modules with Kotlin(`Tools->Kotlin->Configure project with Kotlin`), but it gives me error that "All modules with kotlin files are configured"

Help me stackoverflow, you are my only help.


[1]:
Reply

#2
**Why doesn't my application run?**

The Jar you're creating doesn't include the kotlin runtime as Gradle will only build a Jar with *your* class files in it. I see you're using the `application` plugin so either doing `$ gradle run` or creating a distribution and executing through the provided shell script should work ok. If you want to ship kotlin with your Jar you'll need to create a fat jar.

**Why doesn't IDEA recognise the source directory?**

I suspect this is down to the fact you haven't applied the `idea` plugin in your build file. I haven't done any work with Kotlin, but with other languages this is required to set up the workspace correctly.

Reply

#3
> When running gradlew clean build all projects are compiled successfully, but when running java -jar hello-kotlin-1.0-SNAPSHOT.jar I get following error...

jar {
manifest {
attributes 'Main-Class': 'HelloKotlinKt'
}

from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}

> What is more, Intellij seems not to recognize src/main/kotlin directory as source directory (it's not marked in blue)...

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}

Documentation and useful resources can be found [here][1] and [there][2].


[1]:

[To see links please register here]

[2]:

[To see links please register here]

Reply

#4
I just do that documentation says, and all work fine.
"Kotlin sources can be mixed with Java sources in the same folder, or in different folders. The default convention is using different folders:

project
- src
- main (root)
- kotlin
- java

The corresponding sourceSets property should be updated if not using the default convention:

sourceSets {
main.kotlin.srcDirs += 'src/main/myKotlin'
main.java.srcDirs += 'src/main/myJava'
}

Hope it helps for you.
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through