Android Gradle 플러그인 DSL/API 이전 일정

Android Gradle 플러그인(AGP)은 Android 애플리케이션을 지원하는 빌드 시스템으로, 다양한 유형의 소스를 컴파일하고 실제 Android 기기 또는 에뮬레이터에서 실행할 수 있는 애플리케이션에 컴파일된 소스를 연결하는 지원 기능이 있습니다.

다음 섹션에서는 AGP의 DSL 및 API에 예정된 변경사항을 설명합니다. 새 API가 안정화 버전에 도입됨에 따라 이전 API는 지원 중단됨으로 표시됩니다. 지원 중단된 API는 다음 안정화 버전에서 사용할 수 없게 됩니다. 각 주요 AGP 출시에 예정된 변경사항에 관한 정보가 아래에 나와 있습니다.

AGP 7.0(2021년 상반기까지)

새 변형 API가 안정되고 이전 API는 지원 중단됨

  • 4.1 및 4.2에서 인큐베이션된 변형 API가 안정됩니다.
  • 이러한 모든 인터페이스는 gradle-api 아티팩트에 있습니다.
  • 이전 변형 API에 사용된 이전 인터페이스와 클래스는 이제 지원 중단됩니다.

AGP 7.1(2021년 하반기까지)

새 DSL 인터페이스가 안정되고 이전 API는 지원 중단됨

  • 이제 4.1, 4.2 및 7.0에서 인큐베이션된 DSL 인터페이스가 안정됩니다.
  • 이러한 모든 인터페이스는 gradle-api 아티팩트에 있습니다.
  • DSL에 사용된 이전 인터페이스와 클래스는 이제 지원 중단됩니다.

이제 플러그인을 작성할 때는 새 인터페이스와 클래스만 사용하기 위해 gradle-api 아티팩트 사용만 권장됩니다. 이때 한 가지 사소한 예외는 8.0에서 gradle-api로 이동되는 플러그인 클래스입니다.

비공개 내부 AGP 클래스에 계속 액세스할 수 있음

빌드 파일을 컴파일하는 중에도 다른 아티팩트에 있는 AGP의 비공개 내부 클래스에 액세스할 수는 있지만, 이러한 클래스는 언제든지 브레이킹 체인지될 수 있기 때문에 사용하지 않는 것이 좋습니다.

AGP 8.0(2022년 상반기까지)

이전 API가 삭제됨

  • DSL 및 이전 변형 API에 사용된 모든 이전 인터페이스와 클래스는 삭제됩니다.
  • gradle-api 아티팩트는 DSL 및 변형 API 인터페이스와 클래스에 액세스하는 데 필요한 유일한 아티팩트이고, 플러그인을 개발할 때 사용해야 합니다.
  • 컴파일 및 런타임에 다양한 종속 항목 그래프를 제공하는 Gradle 메타데이터를 사용할 경우 빌드 파일을 컴파일하는 동안에는 gradle-api 아티팩트만 사용할 수 있습니다.

비공개 내부 AGP 클래스에 계속 액세스할 수 있음

컴파일 클래스 경로에서 AGP의 비공개 내부 클래스를 사용하는 아티팩트를 계속해서 수동으로 사용(플러그인과 빌드 파일 모두에 해당)할 수 있지만, 9.0에서 액세스 권한이 삭제될 예정이기 때문에 권장되지 않습니다.

AGP 9.0(2023년 상반기까지)

비공개 내부 AGP 클래스에 대한 액세스 권한이 삭제됨

이제 gradle 아티팩트의 종속 항목이 모든 내부 클래스를 숨기고, gradle-api 아티팩트에서 사용할 수 있는 인터페이스와 클래스에 대한 컴파일 권한만 부여합니다. 이는 플러그인과 빌드 파일 컴파일에 모두 영향을 줍니다.

내부 클래스에 대한 액세스 권한을 얻기 위해 종속 항목을 수동으로 추가할 수 없습니다.