Intereting Posts
Как реорганизовать представление, чтобы разрешить фильтрацию элементов, привязанных к наблюдаемомуArrayList, внутри приложения tornadofx Как использовать setOnclickListener между Grid View и List View в kotlin Смутно о Null Safety в Котлине Проваливается в Котлин: Переключатель / Когда без перерыва Как скрыть навигационную панель андроида или квадратную кнопку в навигационной панели Android-проводник: как сохранить состояние просмотров изменений ориентации Kotlin Невозможно создать поле @Autowired в классе, которое аннотируется с @Configuration @EnableWebMvc Создать ссылку из объектов listview Kotlin – Перегрузка оператора вызовом оператора В Котлине как открыть ссылку в новом окне Как изменить правила подсветки синтаксиса для переменной с модификатором lateinit в IntelliJ (Kotlin)? Как проектировать для сокращения избыточных классов в Котлине? Как я могу ссылаться на неназванный аргумент выражения when? Kotlin: строка формата Как сделать класс данных в Kotlin неизменным с java Date объектом в нем?

Настройка Gradle с Kotlin

Я пытаюсь использовать kotlin с gradle, но я не могу успешно создать проект с Intellij Idea 15.

Я создаю простой проект с двумя модулями hello-java и hello-kotlin .

hello-java – это простой Java-проект, и он отлично компилируется и работает.

hello-kotlin – простой модуль котина, с одним файлом * .kt и build.gradle .
Вот источники:

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!") } 

настройки основного модуля.gradle

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

При выполнении gradlew clean build все проекты скомпилированы успешно, но при запуске java -jar hello-kotlin-1.0-SNAPSHOT.jar возникает следующая ошибка:

 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 

Более того, Intellij, похоже, не распознает каталог src/main/kotlin как исходный каталог (он не отмечен синим цветом), и я не могу использовать функцию автозаполнения при редактировании файла HelloKotlin.kt.

Вот моя структура проекта в окне проекта Intellij

введите описание изображения здесь

Я попытался использовать опцию Intellij для настройки модулей с помощью Kotlin ( Tools->Kotlin->Configure project with Kotlin ), но это дает мне ошибку, что «все модули с файлами kotlin настроены»

Помогите мне в stackoverflow, ты моя единственная помощь.

Solutions Collecting From Web of "Настройка Gradle с Kotlin"

При запуске градирной чистой сборки все проекты скомпилированы успешно, но при запуске java -jar hello-kotlin-1.0-SNAPSHOT.jar я получаю следующую ошибку …

 jar { manifest { attributes 'Main-Class': 'HelloKotlinKt' } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } 

Более того, Intellij, похоже, не распознает каталог src / main / kotlin в качестве исходного каталога (он не отмечен синим цветом) …

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

Документацию и полезные ресурсы можно найти здесь и там .

Почему мое приложение не запускается?

Созданный Jar не включает время выполнения kotlin, поскольку Gradle будет создавать Jar только с вашими файлами классов. Я вижу, вы используете плагин application так что либо выполнение $ gradle run либо создание дистрибутива, а выполнение через предоставленный сценарий оболочки должно работать нормально. Если вы хотите отправить котлин с помощью Jar, вам нужно создать толстую банку.

Почему IDEA не распознает исходный каталог?

Я подозреваю, что это связано с тем, что вы не применили плагин idea в своем файле сборки. Я не работал с Kotlin, но с другими языками это необходимо для правильной настройки рабочего пространства.

Я просто делаю эту документацию, и все работает нормально. «Источники Kotlin могут быть смешаны с источниками Java в одной и той же папке или в разных папках. Соглашение по умолчанию использует разные папки:

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

Соответствующее свойство sourceSets должно быть обновлено, если не использовать соглашение по умолчанию:

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

Надеюсь, это поможет вам.