728x90
반응형
이런한 케이스는 멀티 모듈을 사용할 때 잘 못 사용하게 되면 발생되는 오류이다.
문제상황
IntelliJ에서 Gradle 기반 멀티모듈 프로젝트를 Import할 때,
하위 모듈이 별도 Gradle 프로젝트처럼 인식되면 다음과 같은 문제가 발생한다:
- ./gradlew wrapper 등 명령어가 하위 모듈에서 실행되지 않음
✅ Gradle Wrapper란?
- gradlew, gradlew.bat, gradle/wrapper/gradle-wrapper.jar 등이 포함된 실행 환경
- 프로젝트 내에서 고정된 Gradle 버전으로 빌드 가능
✅ Gradle 멀티모듈 구성 방식
- 루트 settings.gradle 또는 settings.gradle.kts에서 명시적으로 모듈을 등록해야 함
include 'app', 'common', 'publisher', 'consumer'
- 각 모듈은 build.gradle 파일을 가짐
- 루트에서 통합 빌드/의존성 관리를 수행
원인 분석
IntelliJ는 프로젝트 Import 시 .idea/modules.xml에 모듈 정보를 기록한다.
Gradle이 아닌 IntelliJ 내부 기준으로 등록될 경우, 다음과 같은 문제가 발생할 수 있다:
| 구분 | 설명 |
| Gradle 기준 등록 | Gradle의 settings.gradle 기준 모듈로 동작 |
| IntelliJ 기준 등록 | IDE 내부에서 .iml만 등록된 형태 → Gradle wrapper, 종속성, 실행 흐름 비정상 |
잘못된 import는 Gradle이 인식하지 못하는 “독립 프로젝트”로 취급된다.
확인사항
프로젝트 설정은 정상처럼 보인다.

그래들 설정은 정상처럼 보인다.


문제해결 방법
✅ 1. .idea/modules.xml 확인 및 제거
- 잘못 등록된 모듈이 .idea/modules.xml에 남아 있다면 삭제
- 또는 IntelliJ 내에서 File > Project Structure > Modules 에서 제거
✅ 2. Gradle 프로젝트 정상 Import
- File > New > Project from Existing Sources
- 루트 디렉토리에서 build.gradle 선택
- Import as Gradle project → Finish
✅ 3. 루트 settings.gradle 검토
rootProject.name = 'mqmonitor'
include 'app', 'common', 'publisher', 'consumer'
해결
나의 경우는 프로젝트 설정에서 서브 모듈을 넣으려고 할때 잘 못 넣어 하위 모듈로 들어가지 않아서 발생한 것이다.
하위 모듈로 넣는 방법은 다른 방법이 있으며 여기서는 다루지 않는다.
잘못된 그래들 프로젝트 정보는 어디서 확인이 가능하냐면
인텔리 설정 자체의 gradle 항목을 보면 app, consumer가 잡혀 있었다. 그래서 얘들을 제거 해줘야한다.

.idea/modules.xml을 확인해서 설정을 제거하고 다시 그래들 빌드하니 문제가 해결되었다.

728x90
반응형
'SW 공학 & 프로그래밍 언어' 카테고리의 다른 글
| 웹 응답값 유지가 되는 방법 (0) | 2025.03.13 |
|---|---|
| [형상관리] 형상관리에 대해서... SCM, VCS, SVN, git... (1) | 2022.01.14 |
| [문제해결] IE 부모창, 팝업창 appendChild ERROR (0) | 2021.05.30 |
| [XML] XML의 구조 및 문법 (0) | 2020.05.29 |