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과 소스 호환성 제공"2.0", "2.1", "2.2", "2.3", "2.4", "2.5" (실험적)
apiVersionkotlin.compiler.apiVersion번들된 라이브러리의 지정된 버전에서 제공하는 선언만 사용하도록 허용"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 옵션을 사용하여 빌드를 실행하세요.

다음 단계는?

프로젝트 패키징