Хорошо, я новичок в Грэдле и Котлине, и мне трудно понять, как все здесь склеивается ...
Мне нужно настроить проект, который должен работать на Java 7 (клиентские ограничения -_-), и я хочу использовать с ним Kotlin.
Сейчас у меня есть следующий build.gradle
файл, который работает, но я хочу спросить несколько вещей, которые я не смог найти где-либо еще:
buildscript {
ext {
springBootVersion = '1.5.15.RELEASE'
kotlin_version = '1.1.1'
}
repositories {
mavenCentral()
}
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
group = 'com.springkotlin'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.7
targetCompatibility = 1.7
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-rest')
compile('org.springframework.boot:spring-boot-starter-security')
compile('com.onelogin:java-saml:2.3.0')
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7"
runtime('org.springframework.boot:spring-boot-devtools')
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile('org.springframework.security:spring-security-test')
testCompile group: 'javax.inject', name: 'javax.inject', version: '1'
}
compileKotlin {
kotlinOptions {
jvmTarget = "1.6"
}
}
Теперь вопросы:
Я попытался использовать kotlin_version = '1.2.70'
(выпущено за последние несколько дней!) И получил ошибку KotlinPluginWrapper : Unsupported major.minor version 52.0
. Я предполагаю, что это связано с тем, что Kotlin 1.2.X способен «компилировать» (это слово?) Только с Java 8+. Это правильно? 1.1.1
является верной версией для использования здесь или есть способ использовать 1.2.70
, который будет работать с Java 7? Я буду скучать по многим вещам для его использования?
Я хочу понять, какие 3 kotlin я должен был настроить в сценарии. Поправьте меня пожалуйста:
kotlin-gradle-plugin
: используется для определения, какую версию Kotlin я буду использовать (?)
apply plugin: 'kotlin'
: Насколько я знаю из Gradle, это должно добавить задачи для работы с Kotlin, но при запуске gradle tasks
Я не видел ничего другого ... Так для чего он на самом деле?
kotlin-stdlib-jdk7
: Я предполагаю, что это библиотека Kotlin функций, классов и т. Д. Однако я не понимаю, в чем разница между stdlib
и stdlib-jdk7
. Документация гласит, что она содержит «дополнительные функции расширения». Но какие? Кроме того, я должен определить версию для этого парня? Или он автоматически подхватывает kotlin-gradle-plugin
версию?
Заранее спасибо,