Skip to content

Kotlin 1.9 호환성 가이드

_언어 현대성 유지_와 _편안한 업데이트_는 코틀린 언어 디자인의 근본 원칙 중 일부입니다. 전자는 언어 발전을 저해하는 구성 요소는 제거되어야 한다고 말하고, 후자는 코드 마이그레이션이 가능한 한 원활하게 이루어질 수 있도록 이러한 제거가 사전에 잘 전달되어야 한다고 말합니다.

대부분의 언어 변경 사항은 업데이트 변경 로그나 컴파일러 경고와 같은 다른 채널을 통해 이미 발표되었지만, 이 문서는 Kotlin 1.8에서 Kotlin 1.9로 마이그레이션하기 위한 완벽한 참조를 제공하며 모든 내용을 요약합니다.

기본 용어

이 문서에서는 여러 종류의 호환성을 소개합니다:

  • 소스: 소스 비호환 변경은 (오류나 경고 없이) 잘 컴파일되던 코드가 더 이상 컴파일되지 않도록 합니다.
  • 바이너리: 두 바이너리 아티팩트는 서로 교환해도 로딩 또는 링크 오류가 발생하지 않으면 바이너리 호환된다고 합니다.
  • 동작: 동일한 프로그램이 변경 사항을 적용하기 전과 후에 다른 동작을 보인다면 해당 변경은 동작 비호환이라고 합니다.

이러한 정의는 순수 Kotlin에만 해당된다는 점을 기억하십시오. 다른 언어(예: Java) 관점에서의 Kotlin 코드 호환성은 이 문서의 범위에 포함되지 않습니다.

언어

언어 버전 1.3 제거

이슈: KT-61111

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin 1.9는 언어 버전 1.9를 도입하고 언어 버전 1.3 지원을 제거합니다.

사용 중단 주기:

  • 1.6.0: 경고 보고
  • 1.9.0: 경고를 오류로 상향 조정

슈퍼 인터페이스 타입이 함수 리터럴일 때 슈퍼 생성자 호출 금지

이슈: KT-46344

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: 인터페이스가 함수 리터럴 타입을 상속하는 경우, Kotlin 1.9는 해당 생성자가 존재하지 않으므로 슈퍼 생성자 호출을 금지합니다.

사용 중단 주기:

  • 1.7.0: 경고 보고 (또는 프로그레시브 모드에서는 오류)
  • 1.9.0: 경고를 오류로 상향 조정

어노테이션 파라미터 타입의 순환 금지

이슈: KT-47932

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin 1.9는 어노테이션 타입이 직접 또는 간접적으로 자신 파라미터 타입 중 하나로 사용되는 것을 금지합니다. 이는 순환 생성을 방지합니다. 하지만 어노테이션 타입의 Array 또는 vararg인 파라미터 타입은 허용됩니다.

사용 중단 주기:

  • 1.7.0: 어노테이션 파라미터 타입의 순환에 대해 경고 보고 (또는 프로그레시브 모드에서는 오류)
  • 1.9.0: 경고를 오류로 상향 조정하며, -XXLanguage:-ProhibitCyclesInAnnotations를 사용하여 일시적으로 1.9 이전 동작으로 되돌릴 수 있습니다.

파라미터가 없는 함수 타입에 @ExtensionFunctionType 어노테이션 사용 금지

이슈: KT-43527

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin 1.9는 파라미터가 없는 함수 타입 또는 함수 타입이 아닌 타입에 @ExtensionFunctionType 어노테이션을 사용하는 것을 금지합니다.

사용 중단 주기:

  • 1.7.0: 함수 타입이 아닌 타입의 어노테이션에 대해 경고 보고, 함수 타입인 타입의 어노테이션에 대해 오류 보고
  • 1.9.0: 함수 타입에 대한 경고를 오류로 상향 조정

할당 시 Java 필드 타입 불일치 금지

이슈: KT-48994

구성 요소: Kotlin/JVM

비호환 변경 유형: 소스

요약: Kotlin 1.9는 Java 필드에 할당된 값의 타입이 Java 필드의 프로젝션된 타입과 일치하지 않는 경우 컴파일러 오류를 보고합니다.

사용 중단 주기:

  • 1.6.0: 프로젝션된 Java 필드 타입이 할당된 값 타입과 일치하지 않을 때 경고 보고 (또는 프로그레시브 모드에서는 오류)
  • 1.9.0: 경고를 오류로 상향 조정하며, -XXLanguage:-RefineTypeCheckingOnAssignmentsToJavaFields를 사용하여 일시적으로 1.9 이전 동작으로 되돌릴 수 있습니다.

플랫폼 타입 널 가능성 단언 예외에 소스 코드 발췌 없음

이슈: KT-57570

구성 요소: Kotlin/JVM

비호환 변경 유형: 동작

요약: Kotlin 1.9에서는 표현식 널 검사로 인해 발생하는 예외 메시지에 소스 코드 발췌가 포함되지 않습니다. 대신, 메서드 또는 필드의 이름이 표시됩니다. 표현식이 메서드나 필드가 아닌 경우, 메시지에 추가 정보가 제공되지 않습니다.

사용 중단 주기:

  • < 1.9.0: 표현식 널 검사로 인해 발생하는 예외 메시지에 소스 코드 발췌 포함
  • 1.9.0: 표현식 널 검사로 인해 발생하는 예외 메시지에 메서드 또는 필드 이름만 포함되며, -XXLanguage:-NoSourceCodeInNotNullAssertionExceptions를 사용하여 일시적으로 1.9 이전 동작으로 되돌릴 수 있습니다.

슈퍼 호출을 추상 슈퍼클래스 멤버에 위임하는 것 금지

이슈: KT-45508, KT-49017, KT-38078

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin은 명시적이거나 암시적인 슈퍼 호출이 슈퍼 인터페이스에 기본 구현이 있더라도 슈퍼클래스의 추상 멤버에 위임될 때 컴파일 오류를 보고합니다.

사용 중단 주기:

  • 1.5.20: 모든 추상 멤버를 오버라이드하지 않는 비추상 클래스가 사용될 때 경고 도입
  • 1.7.0: 슈퍼 호출이 실제로 슈퍼클래스의 추상 멤버에 접근하는 경우 경고 보고
  • 1.7.0: -Xjvm-default=all 또는 -Xjvm-default=all-compatibility 호환성 모드가 활성화된 경우 모든 해당 사례에 대해 오류 보고; 프로그레시브 모드에서 오류 보고
  • 1.8.0: 슈퍼클래스의 오버라이드되지 않은 추상 메서드를 가진 구체 클래스를 선언하는 경우, 그리고 Any 메서드의 슈퍼 호출이 슈퍼클래스에서 추상으로 오버라이드된 경우 오류 보고
  • 1.9.0: 슈퍼클래스의 추상 메서드에 대한 명시적 슈퍼 호출을 포함하여 모든 해당 사례에 대해 오류 보고

주어가 있는 when 문에서 혼란스러운 문법 사용 중단

이슈: KT-48385

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin 1.6은 when 조건 표현식에서 여러 혼란스러운 문법 구성을 사용 중단했습니다.

사용 중단 주기:

  • 1.6.20: 해당 표현식에 대한 사용 중단 경고 도입
  • 1.8.0: 이 경고를 오류로 상향 조정하며, -XXLanguage:-ProhibitConfusingSyntaxInWhenBranches를 사용하여 일시적으로 1.8 이전 동작으로 되돌릴 수 있습니다.
  • >= 2.1: 일부 사용 중단된 구성을 새로운 언어 기능으로 재사용

다른 숫자 타입 간의 암시적 강제 변환 방지

이슈: KT-48645

구성 요소: Kotlin/JVM

비호환 변경 유형: 동작

요약: Kotlin은 의미론적으로 해당 타입으로의 다운캐스트만 필요한 경우, 숫자 값을 자동으로 기본 숫자 타입으로 변환하는 것을 피할 것입니다.

사용 중단 주기:

  • < 1.5.30: 모든 해당 사례에서 이전 동작
  • 1.5.30: 생성된 프로퍼티 위임 접근자에서 다운캐스트 동작 수정하며, -Xuse-old-backend를 사용하여 일시적으로 1.5.30 수정 이전 동작으로 되돌릴 수 있습니다.
  • >= 2.0: 다른 해당 사례에서 다운캐스트 동작 수정

제네릭 타입 별칭 사용에서 상한 위반 금지 (별칭 타입의 타입 인자의 제네릭 타입 인자에 사용된 타입 파라미터)

이슈: KT-54066

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin은 타입 별칭 타입 파라미터가 별칭 타입의 타입 인자의 제네릭 타입 인자로 사용되는 경우(예: typealias Alias<T> = Base<List<T>>), 별칭 타입의 해당 타입 파라미터의 상한 제약을 위반하는 타입 별칭 사용을 금지할 것입니다.

사용 중단 주기:

  • 1.8.0: 제네릭 타입 별칭 사용이 별칭 타입의 해당 타입 파라미터의 상한 제약을 위반하는 타입 인자를 가질 때 경고 보고
  • 2.0.0: 경고를 오류로 상향 조정

공용 시그니처에서 지역 타입을 근사화할 때 널 가능성 유지

이슈: KT-53982

구성 요소: 코어 언어

비호환 변경 유형: 소스, 바이너리

요약: 명시적으로 지정된 반환 타입 없이 표현식 본문 함수에서 지역 또는 익명 타입이 반환될 때, Kotlin 컴파일러는 해당 타입의 알려진 슈퍼타입을 사용하여 반환 타입을 추론(또는 근사화)합니다. 이 과정에서 컴파일러는 실제로는 널 값을 반환할 수 있는 경우에도 널이 아닌 타입을 추론할 수 있습니다.

사용 중단 주기:

  • 1.8.0: 유연한 슈퍼타입으로 유연한 타입 근사화
  • 1.8.0: 선언이 널이 가능해야 하는 널이 아닌 타입으로 추론될 때 경고를 보고하여 사용자에게 타입을 명시적으로 지정하도록 유도
  • 2.0.0: 널 가능 슈퍼타입으로 널 가능 타입 근사화하며, -XXLanguage:-KeepNullabilityWhenApproximatingLocalType를 사용하여 일시적으로 2.0 이전 동작으로 되돌릴 수 있습니다.

오버라이드를 통한 사용 중단 전파 방지

이슈: KT-47902

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin 1.9는 슈퍼클래스의 사용 중단된 멤버에서 서브클래스의 오버라이딩 멤버로 사용 중단을 더 이상 전파하지 않을 것입니다. 이는 슈퍼클래스의 멤버를 사용 중단하면서도 서브클래스에서는 사용 중단되지 않은 상태로 유지하는 명시적인 메커니즘을 제공합니다.

사용 중단 주기:

  • 1.6.20: 향후 동작 변경에 대한 메시지와 함께 이 경고를 억제하거나 사용 중단된 멤버의 오버라이드에 @Deprecated 어노테이션을 명시적으로 작성하도록 유도하는 경고 보고
  • 1.9.0: 오버라이드된 멤버로 사용 중단 상태 전파 중단. 이 변경 사항은 프로그레시브 모드에서도 즉시 적용됩니다.

어노테이션 클래스에서 파라미터 선언 외의 어떤 곳에서도 컬렉션 리터럴 사용 금지

이슈: KT-39041

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin은 제한된 방식으로 컬렉션 리터럴 사용을 허용합니다. 즉, 어노테이션 클래스의 파라미터에 배열을 전달하거나 이 파라미터의 기본값을 지정하는 데 사용합니다. 그러나 그 외에도 Kotlin은 어노테이션 클래스 내부의 다른 곳, 예를 들어 중첩된 객체에서도 컬렉션 리터럴 사용을 허용했습니다. Kotlin 1.9는 어노테이션 클래스에서 파라미터의 기본값 외의 어떤 곳에서도 컬렉션 리터럴 사용을 금지할 것입니다.

사용 중단 주기:

  • 1.7.0: 어노테이션 클래스의 중첩된 객체 내 배열 리터럴에 대해 경고 보고 (또는 프로그레시브 모드에서는 오류)
  • 1.9.0: 경고를 오류로 상향 조정

기본값 표현식에서 파라미터의 전방 참조 금지

이슈: KT-25694

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin 1.9는 다른 파라미터의 기본값 표현식에서 파라미터의 전방 참조를 금지할 것입니다. 이는 파라미터가 기본값 표현식에서 접근될 때, 이미 함수에 전달되었거나 자체 기본값 표현식으로 초기화된 값을 가지고 있음을 보장합니다.

사용 중단 주기:

  • 1.7.0: 기본값을 가진 파라미터가 그보다 앞에 오는 다른 파라미터의 기본값에서 참조될 때 경고 보고 (또는 프로그레시브 모드에서는 오류)
  • 1.9.0: 경고를 오류로 상향 조정하며, -XXLanguage:-ProhibitIllegalValueParameterUsageInDefaultArguments를 사용하여 일시적으로 1.9 이전 동작으로 되돌릴 수 있습니다.

인라인 함수형 파라미터에 대한 확장 호출 금지

이슈: KT-52502

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin은 인라인 함수형 파라미터를 다른 인라인 함수에 리시버로 전달하는 것을 허용했지만, 그러한 코드를 컴파일할 때 항상 컴파일러 예외가 발생했습니다. Kotlin 1.9는 이를 금지하여 컴파일러 충돌 대신 오류를 보고할 것입니다.

사용 중단 주기:

  • 1.7.20: 인라인 함수형 파라미터에 대한 인라인 확장 호출에 대해 경고 보고 (또는 프로그레시브 모드에서는 오류)
  • 1.9.0: 경고를 오류로 상향 조정

익명 함수 인자를 가진 suspend라는 이름의 중위 함수 호출 금지

이슈: KT-49264

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin 1.9는 익명 함수 리터럴로 전달된 함수형 타입의 단일 인자를 가진 suspend라는 이름의 중위 함수를 더 이상 호출하는 것을 허용하지 않을 것입니다.

사용 중단 주기:

  • 1.7.20: 익명 함수 리터럴을 사용한 suspend 중위 호출에 대해 경고 보고
  • 1.9.0: 경고를 오류로 상향 조정하며, -XXLanguage:-ModifierNonBuiltinSuspendFunError를 사용하여 일시적으로 1.9 이전 동작으로 되돌릴 수 있습니다.
  • TODO: 파서가 suspend fun 토큰 시퀀스를 해석하는 방식 변경

이너 클래스에서 캡처된 타입 파라미터를 해당 분산에 반하여 사용하는 것 금지

이슈: KT-50947

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin 1.9는 외부 클래스의 in 또는 out 분산을 가진 타입 파라미터를 해당 타입 파라미터의 선언된 분산을 위반하는 위치에서 해당 클래스의 이너 클래스에서 사용하는 것을 금지할 것입니다.

사용 중단 주기:

  • 1.7.0: 외부 클래스의 타입 파라미터 사용 위치가 해당 파라미터의 분산 규칙을 위반할 때 경고 보고 (또는 프로그레시브 모드에서는 오류)
  • 1.9.0: 경고를 오류로 상향 조정하며, -XXLanguage:-ReportTypeVarianceConflictOnQualifierArguments를 사용하여 일시적으로 1.9 이전 동작으로 되돌릴 수 있습니다.

복합 할당 연산자에서 명시적 반환 타입이 없는 함수의 재귀 호출 금지

이슈: KT-48546

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin 1.9는 명시적으로 지정된 반환 타입이 없는 함수를 해당 함수 본문 내의 복합 할당 연산자 인자에서 재귀적으로 호출하는 것을 금지할 것입니다. 이는 현재 해당 함수 본문 내의 다른 표현식에서와 동일하게 적용됩니다.

사용 중단 주기:

  • 1.7.0: 명시적으로 지정된 반환 타입이 없는 함수가 해당 함수 본문의 복합 할당 연산자 인자에서 재귀적으로 호출될 때 경고 보고 (또는 프로그레시브 모드에서는 오류)
  • 1.9.0: 경고를 오류로 상향 조정

@NotNull T가 예상되고 널 가능 바운드를 가진 Kotlin 제네릭 파라미터가 주어진 경우 건전하지 않은 호출 금지

이슈: KT-36770

구성 요소: Kotlin/JVM

비호환 변경 유형: 소스

요약: Kotlin 1.9는 잠재적으로 널 가능한 제네릭 타입의 값이 Java 메서드의 @NotNull 어노테이션이 달린 파라미터에 전달되는 메서드 호출을 금지할 것입니다.

사용 중단 주기:

  • 1.5.20: 널이 아닌 타입이 예상되는 곳에 제약 없는 제네릭 타입 파라미터가 전달될 때 경고 보고
  • 1.9.0: 위 경고 대신 타입 불일치 오류를 보고하며, -XXLanguage:-ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated를 사용하여 일시적으로 1.8 이전 동작으로 되돌릴 수 있습니다.

열거형의 엔트리 초기화자에서 열거형 클래스의 동반 객체 멤버 접근 금지

이슈: KT-49110

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin 1.9는 열거형 엔트리 초기화자에서 열거형의 동반 객체에 대한 모든 종류의 접근을 금지할 것입니다.

사용 중단 주기:

  • 1.6.20: 그러한 동반 멤버 접근에 대해 경고 보고 (또는 프로그레시브 모드에서는 오류)
  • 1.9.0: 경고를 오류로 상향 조정하며, -XXLanguage:-ProhibitAccessToEnumCompanionMembersInEnumConstructorCall를 사용하여 일시적으로 1.8 이전 동작으로 되돌릴 수 있습니다.

Enum.declaringClass 합성 프로퍼티 사용 중단 및 제거

이슈: KT-49653

구성 요소: Kotlin/JVM

비호환 변경 유형: 소스

요약: Kotlin은 기본 Java 클래스 java.lang.EnumgetDeclaringClass() 메서드에서 생성된 Enum 값에 대해 합성 프로퍼티 declaringClass를 사용하는 것을 허용했지만, 이 메서드는 Kotlin Enum 타입에서는 사용할 수 없습니다. Kotlin 1.9는 이 프로퍼티 사용을 금지하고, 대신 확장 프로퍼티 declaringJavaClass로 마이그레이션할 것을 제안합니다.

사용 중단 주기:

  • 1.7.0: declaringClass 프로퍼티 사용에 대해 경고 보고 (또는 프로그레시브 모드에서는 오류), declaringJavaClass 확장으로 마이그레이션 제안
  • 1.9.0: 경고를 오류로 상향 조정하며, -XXLanguage:-ProhibitEnumDeclaringClass를 사용하여 일시적으로 1.9 이전 동작으로 되돌릴 수 있습니다.
  • 2.0.0: declaringClass 합성 프로퍼티 제거

컴파일러 옵션 -Xjvm-defaultenablecompatibility 모드 사용 중단

이슈: KT-46329, KT-54746

구성 요소: Kotlin/JVM

비호환 변경 유형: 소스

요약: Kotlin 1.9는 -Xjvm-default 컴파일러 옵션의 enablecompatibility 모드 사용을 금지합니다.

사용 중단 주기:

  • 1.6.20: -Xjvm-default 컴파일러 옵션의 enablecompatibility 모드에 대한 경고 도입
  • 1.9.0: 이 경고를 오류로 상향 조정

빌더 추론 컨텍스트에서 타입 변수를 상한으로 암시적으로 추론하는 것 금지

이슈: KT-47986

구성 요소: 코어 언어

비호환 변경 유형: 소스

요약: Kotlin 2.0은 빌더 추론 람다 함수의 범위에서 사용 사이트 타입 정보가 없을 때, 타입 변수를 해당 타입 파라미터의 상한으로 추론하는 것을 금지할 것입니다. 이는 현재 다른 컨텍스트에서와 동일한 방식입니다.

사용 중단 주기:

  • 1.7.20: 사용 사이트 타입 정보가 없을 때 타입 파라미터가 선언된 상한으로 추론될 때 경고 보고 (또는 프로그레시브 모드에서는 오류)
  • 2.0.0: 경고를 오류로 상향 조정

표준 라이브러리

Range/Progression이 Collection을 구현하기 시작할 때 잠재적인 오버로드 결정 변경에 대해 경고

이슈: KT-49276

구성 요소: 코어 언어 / kotlin-stdlib

비호환 변경 유형: 소스

요약: Kotlin 1.9에서는 표준 Progression과 그로부터 상속된 구체적인 Range에 Collection 인터페이스를 구현할 계획입니다. 이는 어떤 메서드에 두 가지 오버로드(하나는 요소, 다른 하나는 컬렉션을 허용)가 있을 때 오버로드 결정에서 다른 오버로드가 선택될 수 있도록 할 수 있습니다. Kotlin은 Range 또는 Progression 인자로 그러한 오버로드된 메서드가 호출될 때 경고 또는 오류를 보고하여 이 상황을 가시화할 것입니다.

사용 중단 주기:

  • 1.6.20: 표준 Progression 또는 해당 Range 상속자를 인자로 사용하여 오버로드된 메서드가 호출될 때, 이 Progression/Range가 Collection 인터페이스를 구현하면 향후 이 호출에서 다른 오버로드가 선택될 수 있음을 경고 보고
  • 1.8.0: 이 경고를 오류로 상향 조정
  • 2.1.0: 오류 보고 중단, Progression에 Collection 인터페이스 구현하여 해당 사례에서 오버로드 결정 결과 변경

kotlin.dom 및 kotlin.browser 패키지의 선언을 kotlinx.*로 마이그레이션

이슈: KT-39330

구성 요소: kotlin-stdlib (JS)

비호환 변경 유형: 소스

요약: kotlin.domkotlin.browser 패키지의 선언은 stdlib에서 추출하기 위한 준비로 해당 kotlinx.* 패키지로 이동됩니다.

사용 중단 주기:

  • 1.4.0: kotlinx.domkotlinx.browser 패키지에 대체 API 도입
  • 1.4.0: kotlin.domkotlin.browser 패키지의 API를 사용 중단하고 위 새로운 API를 대체제로 제안
  • 1.6.0: 사용 중단 수준을 오류로 상향 조정
  • 1.8.20: JS-IR 타겟용 stdlib에서 사용 중단된 함수 제거
  • >= 2.0: kotlinx.* 패키지의 API를 별도 라이브러리로 이동

일부 JS 전용 API 사용 중단

이슈: KT-48587

구성 요소: kotlin-stdlib (JS)

비호환 변경 유형: 소스

요약: stdlib의 여러 JS 전용 함수가 제거를 위해 사용 중단됩니다. 여기에는 String.concat(String), String.match(regex: String), String.matches(regex: String) 및 비교 함수를 인자로 받는 배열의 sort 함수(예: Array<out T>.sort(comparison: (a: T, b: T) -> Int))가 포함됩니다.

사용 중단 주기:

  • 1.6.0: 해당 함수를 경고와 함께 사용 중단
  • 1.9.0: 사용 중단 수준을 오류로 상향 조정
  • >=2.0: 퍼블릭 API에서 사용 중단된 함수 제거

도구

Gradle 설정에서 enableEndorsedLibs 플래그 제거

이슈: KT-54098

구성 요소: Gradle

비호환 변경 유형: 소스

요약: enableEndorsedLibs 플래그는 더 이상 Gradle 설정에서 지원되지 않습니다.

사용 중단 주기:

  • < 1.9.0: enableEndorsedLibs 플래그가 Gradle 설정에서 지원됨
  • 1.9.0: enableEndorsedLibs 플래그는 Gradle 설정에서 지원되지 않음

Gradle 컨벤션 제거

이슈: KT-52976

구성 요소: Gradle

비호환 변경 유형: 소스

요약: Gradle 컨벤션은 Gradle 7.1에서 사용 중단되었으며 Gradle 8에서 제거되었습니다.

사용 중단 주기:

  • 1.7.20: Gradle 컨벤션 사용 중단
  • 1.9.0: Gradle 컨벤션 제거

KotlinCompile 태스크의 classpath 프로퍼티 제거

이슈: KT-53748

구성 요소: Gradle

비호환 변경 유형: 소스

요약: KotlinCompile 태스크의 classpath 프로퍼티가 제거됩니다.

사용 중단 주기:

  • 1.7.0: classpath 프로퍼티 사용 중단
  • 1.8.0: 사용 중단 수준을 오류로 상향 조정
  • 1.9.0: 퍼블릭 API에서 사용 중단된 함수 제거

kotlin.internal.single.build.metrics.file 프로퍼티 사용 중단

이슈: KT-53357

구성 요소: Gradle

비호환 변경 유형: 소스

요약: 빌드 보고서용 단일 파일을 정의하는 데 사용되는 kotlin.internal.single.build.metrics.file 프로퍼티를 사용 중단합니다. 대신 kotlin.build.report.output=single_file과 함께 kotlin.build.report.single_file 프로퍼티를 사용하십시오.

사용 중단 주기:

  • 1.8.0: 사용 중단 수준을 경고로 상향 조정
  • >= 1.9: 프로퍼티 삭제