Invalid catalog definition: - Problem: In version catalog libs, you can only call the 'from' method a single time

제리·2025년 4월 22일
0

하나의 프로젝트에 여러 개의 앱을 생성할 예정이다.

그런데 각 앱마다 gradle의 버전 관리가 복잡해질 것 같아서 기존의 id 방식에서 버전 카탈로그 기능으로 바꿔보려고 했다.

버전 카탈로그 방식은 libs.versions.toml 이라는 것을 만들어서 라이브러리와 플러그인 버전을 관리하는 것인데 여기에 적으면 나머지 모듈에도 다 적용할 수 있어서 약간 복잡하지만 유지보수에는 매우 좋아보이는 방식이었다.

대략 설명을 하자면,
1. 루트단에 libs.versions.toml 파일 생성
2. 루트단의 build.gradle 에 이런 식으로 적고

plugins {
    alias(libs.plugins.android.application) apply false
    alias(libs.plugins.jetbrains.kotlin.android) apply false
}

// 여기서 apply false 는 하위 모듈에 적용하라는 의미
  1. 각각의 모듈 build.gradle 에 아래와 같이 적어주면 끝!
plugins {
    alias(libs.plugins.android.application)
    alias(libs.plugins.jetbrains.kotlin.android)
}

dependencies {
    implementation(libs.androidx.appcompat)
    ...
}
// libs.로 시작해야한다

이렇게 했어야 했는데.... 우리의 지피티가

versionCatalogs {
    create("libs") {
        from(files("gradle/libs.versions.toml"))
    }
}

얘를 추가하라고 했었다. 그래서 당연히 추가했고 그랬더니

Invalid catalog definition:

  • Problem: In version catalog libs, you can only call the 'from' method a single time

이 에러가 뜬 것이다.

지피티 왈 from(files("gradle/libs.versions.toml")) 여기 부분이 중복이 된 것 같다고 하는 것이다! 나는 여기에 하나만 썼는데! 자꾸 중복이래!

그래서 다시 찾아보니 gradle 버전이 7.4 이상이면 저걸 굳이 쓰지 않아도 되는 것이었다. 그런데 나는 8.7 버전이고 그러니까 저걸 안 써도 되는데 굳이 써서 중복이라는 것이었다.

흐흑... 버전 확인이 항상 제일 중요하다!

오류를 해결하는데 참조한 사이트는 아래와 같습니다. 도와주셔서 감사합니다!

스택오버플로우
JGeun의 개발일지

profile
재밌당

0개의 댓글