Maven 프로젝트용 Kotlin 컴파일러 설정하기
Maven 프로젝트용 Kotlin 컴파일러 설정하기
kotlin-maven-plugin을 사용하면 Maven 프로젝트의 Kotlin 컴파일러를 구성할 수 있어요. 컴파일러 옵션을 지정하고, 실행 전략을 선택하고, 증분 컴파일을 활성화할 수 있어요.
본문
컴파일러 옵션 지정하기
Kotlin Maven 플러그인 노드의 <configuration> 섹션 요소로 컴파일러에 추가 옵션과 인자를 지정할 수 있어요:
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<extensions>true</extensions> <!-- If you want to enable automatic addition of executions to your build -->
<executions>...</executions>
<configuration>
<nowarn>true</nowarn> <!-- Disable warnings -->
<args>
<arg>-Xjsr305=strict</arg> <!-- Enable strict mode for JSR-305 annotations -->
...
</args>
</configuration>
</plugin>
많은 옵션은 프로퍼티를 통해서도 구성할 수 있어요:
<project>
<properties>
<kotlin.compiler.languageVersion>2.4</kotlin.compiler.languageVersion>
</properties>
</project>
다음 속성들이 지원돼요:
JVM 전용 속성
| 이름 | 프로퍼티 이름 | 설명 | 가능한 값 | 기본값 |
|---|---|---|---|---|
| nowarn | 경고를 생성하지 않음 | true, false | false | |
| languageVersion | kotlin.compiler.languageVersion | 컴파일 중 사용할 수 있는 Kotlin 언어 기능과 문법을 제어해요. 자세한 내용은 -language-version 을 참조해요. | "2.0", "2.1", "2.2", "2.3", "2.4", "2.5" (EXPERIMENTAL) | |
| apiVersion | kotlin.compiler.apiVersion | 코드가 사용할 수 있는 Kotlin API를 제어해요. 자세한 내용은 -api-version 을 참조해요. | "2.0", "2.1", "2.2", "2.3", "2.4", "2.5" (EXPERIMENTAL) | |
| sourceDirs | 컴파일할 소스 파일이 있는 디렉터리 | 프로젝트 소스 루트 | ||
| compilerPlugins | 활성화된 컴파일러 플러그인 | [] | ||
| pluginOptions | 컴파일러 플러그인 옵션 | [] | ||
| args | 추가 컴파일러 인자 | [] | ||
| jvmTarget | kotlin.compiler.jvmTarget | 생성되는 바이트코드의 대상 JVM 버전. 출력의 바이트코드 버전만 제어하며 코드가 사용할 수 있는 JDK API는 제한하지 않아요. | "1.8", "9", "10", ..., "26" | "1.8" |
| jdkRelease | kotlin.compiler.jdkRelease | 대상 JVM 버전. 바이트코드 버전을 제어하고 사용 가능한 API를 지정된 JDK 버전으로 제한해서 최신 API를 실수로 쓰는 것을 막아요. Java의 --release 컴파일러 옵션과 동일해요. | "1.8", "9", "10", ..., "26" | |
| jdkHome | kotlin.compiler.jdkHome | 기본 JAVA_HOME 대신 지정된 위치의 사용자 지정 JDK를 클래스패스에 포함 | ||
| jdkToolchain | kotlin.compiler.jdkToolchain | 툴체인에서 사용할 JDK 버전을 설정. Kotlin 컴파일에만 영향을 줘요. |
실행 전략 선택하기
기본적으로 Maven은 Kotlin 데몬 컴파일러 실행 전략을 사용해요. "in process" 전략으로 전환하려면 pom.xml 파일에 다음 프로퍼티를 설정해요:
<properties>
<kotlin.compiler.daemon>false</kotlin.compiler.daemon>
</properties>
다양한 전략에 대한 자세한 내용은 컴파일러 실행 전략을 참조해요.
증분 컴파일 활성화하기
빌드를 더 빠르게 하려면 kotlin.compiler.incremental 프로퍼티를 추가해서 증분 컴파일을 활성화할 수 있어요:
<properties>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
</properties>
또는 -Dkotlin.compiler.incremental=true 옵션으로 빌드를 실행해요.
더 알아보기
다음 단계로 프로젝트 패키징하기를 살펴보세요. 상위 문서인 Maven도 참고하세요.