Tôi cố gắng để sử dụng Kotlin với gradle, nhưng tôi không thể thành công tạo ra một dự án với IntelliJ IDEA 15.Cấu hình Gradle với Kotlin
Tôi đã tạo ra dự án đơn giản với hai mô-đun hello-java
và hello-kotlin
.
hello-java
là dự án java đơn giản và nó đang biên dịch và chạy hoàn toàn tốt.
hello-kotlin
là mô-đun kotin đơn giản, chỉ với một tệp * .kt và build.gradle
tệp.
Dưới đây là các nguồn:
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!")
}
mô-đun settings.gradle chính
include 'hello-java'
include 'hello-kotlin'
Khi chạy gradlew clean build
tất cả các dự án được biên soạn thành công, nhưng khi chạy java -jar hello-kotlin-1.0-SNAPSHOT.jar
tôi nhận được lỗi sau:
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
Hơn thế nữa, Intellij dường như không nhận ra src/main/kotlin
thư mục như thư mục nguồn (nó không được đánh dấu màu xanh lam) và tôi không thể sử dụng tính năng tự động hoàn tất khi chỉnh sửa HelloKotlin.kt tập tin.
Dưới đây là cấu trúc dự án của tôi trong cửa sổ dự án Intellij
Tôi đã thử sử dụng tùy chọn Intellij để cấu hình mô-đun với Kotlin (Tools->Kotlin->Configure project with Kotlin
), nhưng nó mang lại cho tôi lỗi rằng "Tất cả các mô-đun với file Kotlin là được định cấu hình "
Giúp tôi lưu trữ stackoverflow, bạn là trợ giúp duy nhất của tôi.
Tại sao bạn đang sử dụng Kotlin 0,10? phiên bản mới nhất là 1.0-beta. – yole
Không có lý do đặc biệt. tôi đã thử các phiên bản khác nhau. tôi nghĩ vấn đề của tôi có một cái gì đó để làm w phiên bản kotlin thứ i. –
Vâng, stacktrace bạn đã hiển thị có chứa một lớp mà không còn tồn tại trong phiên bản Kotlin mới nhất, do đó, có, nó có cái gì để làm với phiên bản Kotlin. Vui lòng luôn sử dụng phiên bản mới nhất. – yole