[메모] 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에서 지원하지 않으므로 별도로 구성해야 합니다.

참고

comments powered by Disqus

Currnte Pages Tags

Android Gradle

About

Pluu, Android Developer Blog Site

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

Using Theme : SOLID SOLID Github

Social Links