Maven 프로젝트용 Kotlin 컴파일러 설정하기

Maven 프로젝트용 Kotlin 컴파일러 설정하기

kotlin-maven-plugin을 사용하면 Maven 프로젝트의 Kotlin 컴파일러를 구성할 수 있어요. 컴파일러 옵션을 지정하고, 실행 전략을 선택하고, 증분 컴파일을 활성화할 수 있어요.

출처: Configure Kotlin compiler for your Maven project

본문

컴파일러 옵션 지정하기

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도 참고하세요.