오랜만에 다시 사이드 프로젝트 시작하려고 한다.

 

readme에 이런저런 개발 환경들을 정리하려다 보니 settings.gradle.kts 파일이 왜 필요한지 궁금해졌다.

 

https://docs.gradle.org/current/userguide/organizing_gradle_projects.html#sec:settings_file

 

Organizing Gradle Projects

It’s very common that a project defines and executes different types of tests e.g. unit tests, integration tests, functional tests or smoke tests. Optimally, the test source code for each test type should be stored in dedicated source directories. Separa

docs.gradle.org

 

Always define a settings file

gradle 사이트에 항상 정의하라고 나와있다.

 

gradle 빌드시 settings.gradle 파일을 찾아가는 알고리즘이 있다

 

그러면 settings.gradle 파일 안에는 어떤 내용을 정의하는 거지?

 

https://docs.gradle.org/current/userguide/settings_file_basics.html

 

Settings File Basics

The settings file is the entry point of every Gradle project. The primary purpose of the settings file is to add subprojects to your build. Gradle supports single and multi-project builds. For single-project builds, the settings file is optional. For multi

docs.gradle.org

 

프로젝트에 모듈이 한 개라면 setting.gradle 파일은 비어 있어도 된다.

모듈이 2개 이상이라면 settings.gradle에 각 모듈에 대해 정의를 해줘야 한다.

 

 

루트 프로젝트와

하위 프로젝트를 위와 같이 정의하면 된다.

 

그러면 내 프로젝트의 settings.gradle 파일을 보겠다.

 

pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven("https://jitpack.io")
    }
}

rootProject.name = "Main"        // 루트 프로젝트 정의
include(":app")     // 하위 프로젝트 1
include(":library") // 하위 프로젝트 2

 

하단에 프로젝트 정의해 놓은것은 보이는데

 

pluginManagement, dependencyResolutionManagement 도 정의되어있다.

 

이건 gradle의 plugin 사용법에 대한 정리가 필요할 것 같다.

 

 

결론

settings.gradle 파일을 프로젝트에서 gradle을 사용해 build를 한다면 최초로 찾아가는 파일이다.

모듈이 하나일 때는 비어 있어도 되고 멀티 모듈일 경우 반드시 정의해줘야 한다.

+ Recent posts