본문 바로가기

프로그래밍 언어/JAVA(JSP, Spring)

IntelliJ에서 Java 클래스 생성 버튼이 안 보이는 이유 — 소스 루트(Source Root) 설정법

728x90
반응형

한 줄 요약

IntelliJ에서 폴더에 우클릭해도 "Java Class" 메뉴가 없다면, 그 폴더가 소스 루트(Source Root) 로 지정되지 않은 것이 원인이다.


핵심 개념 — 소스 루트(Source Root)란?

IntelliJ IDEA는 프로젝트 안의 모든 폴더를 동등하게 취급하지 않는다.

JetBrains 공식 문서에 따르면, IntelliJ는 프로젝트를 모듈(Module) 단위로 관리하며,
각 폴더에는 아래와 같은 역할(Content Root Type) 을 명시적으로 지정해야 한다.

폴더 유형 색상 역할
Sources Root 파란색 Java 소스 파일이 위치하는 폴더
Test Sources Root 초록색 테스트 코드가 위치하는 폴더
Resources Root 노란색 설정 파일, 이미지 등 리소스
Excluded 회색 빌드/인덱싱 제외 폴더

출처: JetBrains IntelliJ IDEA 공식 문서 — Content roots

 

소스 루트로 지정된 폴더에서만 IntelliJ는 Java 클래스 생성, 패키지 인식, 컴파일 대상 포함 등의 기능을 활성화한다.
지정되지 않은 일반 폴더는 단순 디렉터리로 취급하기 때문에 우클릭 메뉴에 "New → Java Class"가 나타나지 않는다.


쉽게 이해하기 — 비유로 설명

도서관에서 책을 검색할 때, "장서 구역"으로 등록된 서가에 있는 책만 검색 시스템에 뜬다.
아직 분류되지 않고 구석에 쌓인 박스는 시스템이 인식하지 못한다.

 

IntelliJ도 마찬가지다.
소스 루트로 등록된 폴더 = 장서 구역.
등록 안 된 폴더 = 분류 전 박스.


소스 루트 지정 방법

방법 1 — Project Structure에서 직접 지정 (가장 확실한 방법)

  1. File → Project Structure 열기 (단축키: Cmd + ; / Ctrl + Alt + Shift + S)
  2. 왼쪽에서 Modules 선택
  3. 가운데 패널에서 소스로 쓸 폴더 클릭
  4. 상단 Sources 버튼 클릭 → 폴더가 파란색으로 변하면 완료

방법 2 — 폴더 우클릭으로 빠르게 지정

  1. 프로젝트 창에서 해당 폴더 우클릭
  2. Mark Directory as → Sources Root 클릭

012

이 설정은 .iml 파일(IntelliJ 모듈 설정 파일)에 저장된다.


왜 이런 구조를 쓰는가 — 기술적 배경

Maven과 Gradle 같은 빌드 도구는 소스 파일 위치를 컨벤션(convention) 으로 정의한다.

  • Maven: src/main/java를 기본 소스 루트로 사용
    (출처: Apache Maven — Standard Directory Layout)
  • Gradle: sourceSet을 통해 소스 디렉터리를 명시적으로 선언
    (출처: Gradle 공식 문서 — Java Plugin Source Sets)

IntelliJ는 Maven, Gradle 프로젝트를 import할 때 이 컨벤션을 읽어 자동으로 소스 루트를 지정한다.
직접 만든 폴더이거나 빌드 도구 없이 프로젝트를 구성한 경우에는 수동 지정이 필요하다.


핵심 정리

  • IntelliJ는 폴더 유형을 명시적으로 구분하며, 소스 루트로 지정된 폴더에서만 Java 클래스 생성이 가능하다.
  • 소스 루트 지정은 File → Project Structure → Modules → Sources 또는 폴더 우클릭으로 할 수 있다.
  • Maven/Gradle 프로젝트는 src/main/java가 자동으로 소스 루트로 인식된다.
  • 설정 정보는 .iml 파일에 저장된다.
  • 폴더 아이콘이 파란색으로 바뀌면 소스 루트로 정상 지정된 상태다.

주의사항

  • Maven, Gradle 프로젝트에서 소스 루트를 임의로 변경하면 빌드 오류가 발생할 수 있다.
  • 팀 프로젝트에서 .iml 파일은 .gitignore에 포함되는 경우가 많으므로, 협업 시 각자 재설정이 필요할 수 있다.
  • IntelliJ 재시작 후에도 설정이 유지되지 않는다면 Maven/Gradle Reload (코끼리 아이콘)를 실행해 동기화할 것.
반응형