[메모] Gradle의 Version Category를 사용하여 Extra Properties 호환성 유지

[메모] Gradle의 Version Category를 사용하여 Extra Properties 호환성 유지

Sep 25, 2022. | By: pluulove

단순 속성 형태의 버전 정보

// 변경 전
ext {
  core = "1.9.0"
}

// 변경 후
ext {
  // version category로부터 취득
  core = libs.versions.core.get()
}

맵 형태의 라이브러리

// 변경 전
ext {
  libraries = [
    activity: "androidx.activity:activity-ktx:1.6.0"
  ]
}

// 변경 후
ext {
  def libsFromToml = extensions.getByType(VersionCatalogsExtension).named("libs")
  def librariesValue = [:]
  libsFromToml.libraryAliases.each {
    librariesValue[it] = getLibraryByName(libsFromToml, it)
  }
  libraries = librariesValue
}

private getLibraryByName(VersionCatalog libs, String name) {
    def library = libs.findLibrary(name)
    if (library.isPresent()) {
        return library.get().get()
    } else {
        throw GradleException("Could not find a library for `$name`")
    }
}

2단계 이상의 깊이를 사용하는 경우에는 Version Category에서 지원하지 않으므로 별도로 구성해야 합니다.

참고

Currnte Pages Tags

Android Gradle

About

Pluu, Android Developer Blog Site

이전 블로그 링크 :네이버 블로그

Using Theme : SOLID SOLID Github

Social Links