기존 프로젝트의 dependency 최신화 작업을 하며 찾아본 내용들.
코틀린 프로젝트를 gradle로 build 하기 위해, Kotlin Gradle Plugin이 필요하며
build.gradle.kts 파일에 빌드 스크립트를 작성한다.
빌드 스크립트에 들어가는 내용 : 프로젝트의 dependency 가 명시된다.
호환성 확인 필요
- 그래들 버전
- jvmTarget
플러그인 적용하기
plugins {
kotlin("<...>") version "1.9.10"
}
JvmTarget
JVM_20까지 지원 되는 것으로 보인다.
그러나... 내가 필요한건 JDK_21인데... JVM_20까지 밖에 지원안하는걸로 보인다...
https://youtrack.jetbrains.com/issue/KT-57669/Add-Java-20-to-JvmTarget#focus=Comments-27-7696656.0-0
JVM이랑 JDK버전이랑 꼭 일치할 필요는 없는것 같아보인다. 해당 이슈에 있는대로 적용해봐야겠다.
(추후 JDK, JRE, JVM의 차이도 공부해봐야 겠다)
JvmTargert이 유효한지 체크하는 속성
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile>().configureEach {
jvmTargetValidationMode.set(org.jetbrains.kotlin.gradle.dsl.jvm.JvmTargetValidationMode.WARNING)
}
dependency types
api : 전체에 적용된다.
implementation : 대상 모듈에만 적용한다. 모듈의 internal logic에만 필요한 경우 사용한다.
compileOnly : 대상 모듈을 compile할때만 사용하고 runtimie에는 사용 안한다. 3rd-party implementation이 필요할때 사용한다.
runtimeOnly : runtime때만 사용한다.
dependency on the standard library(stdlib)
source set에 자동으로 추가된다.
kotlin gradle plugin과 같은 버전을 사용한다.
gradle이란?
build 자동화 툴이며 오픈소스이다.
gradle wrapper란?
그래들 공식문서에서 추천하는 gradle build 실행시키는 방법이다.
wrapper는 그래들에 명시된 버전을 필요하기 전에 미리 다운로드 하는 스크립트다. 이를 통해서 사용자는 그래들 프로젝트를 더욱 빨리 실행 시킬 수 있다.
참고 링크
Configure a Gradle project : https://kotlinlang.org/docs/gradle-configure-project.html
Using Gradle Plugins : https://docs.gradle.org/current/userguide/plugins.html#sec:plugins_block
Gradle Wrapper : https://docs.gradle.org/current/userguide/gradle_wrapper.html
JDK vs JRE vs JVM in Java – Difference Between Them : https://www.guru99.com/difference-between-jdk-jre-jvm.html
JEPs in JDK 21 integrated since JDK 17 : https://openjdk.org/projects/jdk/21/jeps-since-jdk-17
그래들 공식 : https://docs.gradle.org/current/userguide/userguide.html
'개발 > 공부' 카테고리의 다른 글
[인프런][아파치 카프카] 역사와 미래 (0) | 2023.09.30 |
---|