Skip to content

Maven 프로젝트용 Kotlin 컴파일러 구성

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

컴파일러 옵션 지정

Kotlin Maven 플러그인 노드의 <configuration> 섹션 내 요소로 컴파일러에 대한 추가 옵션과 인수를 지정할 수 있습니다.

xml
<plugin>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-maven-plugin</artifactId>
    <version>${kotlin.version}</version>
    <extensions>true</extensions> <!-- 빌드에 실행(execution)을 자동으로 추가하려는 경우 -->
    <executions>...</executions>
    <configuration>
        <nowarn>true</nowarn> <!-- 경고 비활성화 -->
        <args>
            <arg>-Xjsr305=strict</arg> <!-- JSR-305 어노테이션에 대해 엄격 모드 활성화 -->
            ...
        </args>
    </configuration>
</plugin>

대부분의 옵션은 속성(property)을 통해 구성할 수도 있습니다.

xml
<project>
    <properties>
        <kotlin.compiler.languageVersion>2.4</kotlin.compiler.languageVersion>
    </properties>
</project>

다음 속성들이 지원됩니다:

JVM 관련 속성

이름속성 이름설명가능한 값기본값
nowarn경고를 생성하지 않음true, falsefalse
languageVersionkotlin.compiler.languageVersion컴파일 중에 사용할 수 있는 Kotlin 언어 기능 및 구문을 제어합니다. 자세한 내용은 -language-version을 참조하세요."2.0", "2.1", "2.2", "2.3", "2.4", "2.5" (실험적)
apiVersionkotlin.compiler.apiVersion코드에서 사용할 수 있는 Kotlin API를 제어합니다. 자세한 내용은 -api-version을 참조하세요."2.0", "2.1", "2.2", "2.3", "2.4", "2.5" (실험적)
sourceDirs컴파일할 소스 파일이 포함된 디렉터리프로젝트 소스 루트
compilerPlugins활성화된 컴파일러 플러그인[]
pluginOptions컴파일러 플러그인 옵션[]
args추가 컴파일러 인수[]
jvmTargetkotlin.compiler.jvmTarget생성된 JVM 바이트코드의 대상 버전. 출력물의 바이트코드 버전만 제어하며 코드에서 사용할 수 있는 JDK API를 제한하지는 않습니다."1.8", "9", "10", ..., "26""1.8"
jdkReleasekotlin.compiler.jdkRelease대상 JVM 버전. 바이트코드 버전을 제어하고 사용 가능한 API를 지정된 JDK 버전으로 제한하여, 실수로 더 새로운 API를 사용하는 것을 방지합니다. Java의 --release 컴파일러 옵션과 동일합니다."1.8", "9", "10", ..., "26"
jdkHomekotlin.compiler.jdkHome기본 JAVA_HOME 대신 지정된 위치의 커스텀 JDK를 클래스패스에 포함
jdkToolchainkotlin.compiler.jdkToolchain툴체인(toolchain)에서 사용할 JDK 버전을 설정합니다. Kotlin 컴파일에만 영향을 미칩니다.

실행 전략 선택

기본적으로 Maven은 Kotlin 데몬 컴파일러 실행 전략을 사용합니다. "in process" 전략으로 전환하려면 pom.xml 파일에 다음 속성을 설정하세요.

xml
<properties>
    <kotlin.compiler.daemon>false</kotlin.compiler.daemon>
</properties>

다양한 전략에 대한 자세한 내용은 컴파일러 실행 전략을 참조하세요.

증분 컴파일 활성화

빌드 속도를 높이려면 kotlin.compiler.incremental 속성을 추가하여 증분 컴파일(incremental compilation)을 활성화할 수 있습니다.

xml
<properties>
    <kotlin.compiler.incremental>true</kotlin.compiler.incremental>
</properties>

또는 -Dkotlin.compiler.incremental=true 옵션을 사용하여 빌드를 실행하세요.

다음 단계는?

프로젝트 패키징