From 55723468a957c783fb19525288cf7c4d29ec26fd Mon Sep 17 00:00:00 2001 From: moondev03 Date: Mon, 26 Jan 2026 01:53:39 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20Gradle=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=20=EB=B0=8F=20=EC=9D=98=EC=A1=B4=EC=84=B1=20?= =?UTF-8?q?=EC=84=A0=EC=96=B8=20=EB=B0=A9=EC=8B=9D=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Type-Safe Project Accessor를 활용하여 Gradle 프로젝트 경로를 하이픈(-) 기반으로 변경하고, 이에 따라 모듈 의존성 선언 방식을 업데이트했습니다. 또한, `settings.gradle.kts`에 `includeAuto` 유틸리티 함수를 추가하여 모듈 등록 과정을 자동화하고 가독성을 높였습니다. * **주요 변경 사항**: * **프로젝트 경로 변경**: 모듈 경로 구분자를 콜론(`:`)에서 하이픈(`-`)으로 변경 (e.g., `:core:data` -> `:core-data`) * **의존성 업데이트**: 변경된 프로젝트 경로 규칙에 맞춰 `app` 및 `core:data` 모듈의 의존성 선언을 수정 * **자동화 스크립트 추가**: `settings.gradle.kts`에 디렉토리 경로를 기반으로 프로젝트 경로를 자동 생성하고 포함하는 `includeAuto` 함수 구현 --- Prezel/app/build.gradle.kts | 4 ++-- Prezel/core/data/build.gradle.kts | 2 +- Prezel/settings.gradle.kts | 39 +++++++++++++++++++++++++++---- 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/Prezel/app/build.gradle.kts b/Prezel/app/build.gradle.kts index f16b7d0..0441b83 100644 --- a/Prezel/app/build.gradle.kts +++ b/Prezel/app/build.gradle.kts @@ -12,8 +12,8 @@ android { } dependencies { - implementation(projects.core.data) - implementation(projects.core.designsystem) + implementation(projects.coreData) + implementation(projects.coreDesignsystem) implementation(libs.androidx.activity.ktx) implementation(libs.androidx.core.ktx) diff --git a/Prezel/core/data/build.gradle.kts b/Prezel/core/data/build.gradle.kts index 366eb6c..84e9bb7 100644 --- a/Prezel/core/data/build.gradle.kts +++ b/Prezel/core/data/build.gradle.kts @@ -9,6 +9,6 @@ android { } dependencies { - implementation(projects.core.network) + implementation(projects.coreNetwork) implementation(libs.kotlinx.coroutines.core) } diff --git a/Prezel/settings.gradle.kts b/Prezel/settings.gradle.kts index 74841c3..f465c7c 100644 --- a/Prezel/settings.gradle.kts +++ b/Prezel/settings.gradle.kts @@ -1,3 +1,5 @@ +import kotlin.text.replace + pluginManagement { includeBuild("build-logic") repositories { @@ -30,8 +32,37 @@ dependencyResolutionManagement { rootProject.name = "Prezel" enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") -include(":app") -include(":core:data") -include(":core:network") -include(":core:designsystem") +includeAuto( + ":app", + ":core:data", + ":core:designsystem", + ":core:network", +) + +/** + * 모듈 경로 규칙 + * - Gradle project path: :core-data + * - Directory path: core/data + * + * Examples + * :core:data -> include(":core-data"), dir = core/data + * :feature:login:api -> include(":feature-login-api"), dir = feature/login/api + * :feature:main -> include(":feature-main"), dir = feature/main + */ +private fun Settings.includeAuto( + vararg modulePaths: String, + prefix: String = ":", + delimiter: String = "/", +) { + modulePaths.forEach { modulePath -> + val directoryPath = modulePath + .removePrefix(prefix) + .replace(prefix, delimiter) + + val projectPath = prefix + directoryPath.replace(delimiter, "-") + + include(projectPath) + project(projectPath).projectDir = file(directoryPath) + } +}