まえおき
こんにちは、yy_yankです。
こちらは Kotln Advent Calendar 2021(https://qiita.com/advent-calendar/2021/kotlin)の18日目の記事です
最近(?)JDK17が出ましたね。
ちゃんとKotlinはJDK17で動くのでしょうか?
実際に確かめてみました!
結論
動きます!!!
〜FIN〜
ただの動作確認ですが、気になる方は続きの文章を一応読んでみてください
前提
- JDKはsdkmanで
java/17.0.1-zulu/zulu-17.jdk
を入れました
公式サイトのドキュメント
ためしたこと
- Spring BootとKotlinの最新版をJDK 17で動かす
コード
buildscript {
ext {
kotlinVersion = '1.6.10'
springBootVersion = '2.6.2'
springDepencyManagementVersion = '1.0.11.RELEASE'
}
repositories {
mavenCentral()
} dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")
classpath("org.jetbrains.kotlin:kotlin-allopen:${kotlinVersion}")
}}
plugins {
id 'org.jetbrains.kotlin.jvm' version "$kotlinVersion"
id "org.jetbrains.kotlin.plugin.spring" version "$kotlinVersion"
id 'idea'
id 'maven-publish'
id 'io.spring.dependency-management' version "$springDepencyManagementVersion"
id 'org.springframework.boot' version "$springBootVersion"
}
group 'com.github.yyYank'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
java.sourceCompatibility = JavaVersion.VERSION_17
bootJar {
archiveFileName = "kotln-jdk.jar"
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation "org.jetbrains.kotlin:kotlin-stdlib"
}
}
test {
useJUnitPlatform()
}
compileKotlin {
kotlinOptions.jvmTarget = '17'
kotlinOptions.freeCompilerArgs = ["-Xjsr305=strict"]
}
compileTestKotlin {
kotlinOptions.jvmTarget = '17'
kotlinOptions.freeCompilerArgs = ["-Xjsr305=strict"]
}
package com.github.yyYank.app
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
@RestController
class HelloController {
@GetMapping
fun hello() = "hello jdk17"
}
package com.github.yyYank.app
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class KotlinJdk17Application
fun main(args: Array<String>) {
runApplication<KotlinJdk17Application>(*args)
}
Starting KotlinJdk17ApplicationKt using Java 17.0.1 on
と出ていたのでオッケー
./gradlew -d bootRun
idates/java/17.0.1-zulu/zulu-17.jdk/Contents/Home/bin/java''
2021-12-24T10:10:09.274+0900 [DEBUG] [org.gradle.process.internal.ExecHandleRunner] waiting until streams are handled...
2021-12-24T10:10:09.826+0900 [QUIET] [system.out]
2021-12-24T10:10:09.826+0900 [QUIET] [system.out] . ____ _ __ _ _
2021-12-24T10:10:09.826+0900 [QUIET] [system.out] /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
2021-12-24T10:10:09.826+0900 [QUIET] [system.out] ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
2021-12-24T10:10:09.826+0900 [QUIET] [system.out] \\/ ___)| |_)| | | | | || (_| | ) ) ) )
2021-12-24T10:10:09.826+0900 [QUIET] [system.out] ' |____| .__|_| |_|_| |_\__, | / / / /
2021-12-24T10:10:09.826+0900 [QUIET] [system.out] =========|_|==============|___/=/_/_/_/
2021-12-24T10:10:09.827+0900 [QUIET] [system.out] :: Spring Boot :: (v2.6.2)
2021-12-24T10:10:09.827+0900 [QUIET] [system.out]
2021-12-24T10:10:09.874+0900 [QUIET] [system.out] 2021-12-24 10:10:09.873 INFO 64549 --- [ main] c.g.yyYank.app.KotlinJdk17ApplicationKt : Starting KotlinJdk17ApplicationKt using Java 17.0.1 on C02DX1AEML86 with PID 64549 (/Users/yy_yank/ghq/github.com/yyYank/kotlin-jdk-17/build/classes/kotlin/main started by yy_yank in /Users/yy_yank/ghq/github.com/yyYank/kotlin-jdk-17)
curl -X GET localhost:8080
hello jdk17%
まとめ
いかがでしたでしょうか(様式美)
はい、ということで普通に動きますのでバージョンアップしていきましょう!!
0 件のコメント:
コメントを投稿