티스토리 뷰

Back End/☠️ Java

gradlew 명령어들

James Wetzel 2025. 5. 25. 19:45

./gradlew bootRun 이란?

./gradlew bootRunGradle 프로젝트, 특히 Spring Boot 애플리케이션을 개발 모드에서 실행하는 가장 일반적인 명령어입니다.

각 부분을 분해해서 설명해 드릴게요.

  1. ./gradlew (Gradle Wrapper)
    • gradlew는 "Gradle Wrapper"의 약자입니다.
    • 역할: 이 스크립트는 해당 프로젝트에 필요한 특정 버전의 Gradle을 자동으로 다운로드하고 사용하게 해주는 역할을 합니다.
    • 장점:
      • 개발 환경에 Gradle이 설치되어 있지 않아도 프로젝트를 빌드하고 실행할 수 있습니다.
      • 팀원 모두가 동일한 Gradle 버전으로 작업하게 하여 빌드 환경의 일관성을 유지하고 "내 컴퓨터에서는 되는데 네 컴퓨터에서는 안돼" 같은 문제를 방지합니다.
      • .은 현재 디렉토리를 의미하므로, 프로젝트 루트 디렉토리에서 이 스크립트를 실행한다는 뜻입니다. (Windows에서는 gradlew.bat으로 실행합니다.)
  2. bootRun (Spring Boot Gradle Plugin 태스크)
    • bootRun은 Spring Boot가 제공하는 Gradle 플러그인(Plugin)에 포함된 특정 태스크(Task) 이름입니다.
    • 역할: 이 태스크는 Spring Boot 애플리케이션을 실행 가능한 형태로 빌드하고, 내장된 웹 서버(기본적으로 Tomcat)를 사용하여 애플리케이션을 시작합니다.
    • 개발 모드에 최적화: bootRun은 개발 과정에서 애플리케이션을 빠르게 실행하고 변경 사항을 즉시 반영하며 테스트할 때 매우 유용합니다. 애플리케이션을 재시작하지 않고도 코드 변경 사항을 반영(DevTools 사용 시)하거나, 로그를 실시간으로 확인하는 등의 개발 편의성을 제공합니다.
    • 배포 목적이 아님: 이 명령어는 주로 개발 및 테스트 목적으로 사용되며, 실제 운영 환경에 배포할 때는 일반적으로 실행 가능한 JAR 파일을 만들어 배포합니다. (이는 bootJar 태스크를 통해 생성됩니다.)

요약

./gradlew bootRun 명령어는 "이 프로젝트에 지정된 Gradle 버전을 사용하여, Spring Boot 애플리케이션을 개발 모드로 실행해라"라는 의미입니다.

터미널이나 명령 프롬프트에서 이 명령어를 입력하고 실행하면, Spring Boot 애플리케이션이 빌드되고, 내장된 웹 서버가 구동되어 http://localhost:8080 (기본 포트)과 같은 주소로 접근하여 API를 테스트하거나 웹 페이지를 확인할 수 있게 됩니다.

Spring Boot 개발 시 가장 빈번하게 사용하게 될 명령어 중 하나입니다.

네, Spring Boot 웹 개발을 하면서 Gradle 또는 Maven을 통해 자주 사용하게 될 핵심 명령어들을 추가적으로 설명해 드릴게요. 이 명령어들은 프로젝트 관리, 빌드, 테스트, 패키징 등 다양한 상황에서 유용하게 사용됩니다.

우선, 어떤 빌드 도구를 사용하시는지에 따라 명령어가 약간 다릅니다. 여기서는 Gradle과 Maven 명령어를 함께 설명하며, .은 현재 디렉토리를 의미합니다.

1. 빌드 (Build)

  • 목적: 소스 코드를 컴파일하고, 필요한 라이브러리(JAR 파일)들을 다운로드하며, 테스트를 실행하고, 최종 실행 가능한 아티팩트(JAR 또는 WAR)를 생성하는 등 프로젝트를 빌드하는 과정입니다.
    • Gradle: ./gradlew build
      • build 디렉토리에 컴파일된 클래스 파일, 테스트 결과, 최종 .jar 파일 등이 생성됩니다.
      • 일반적으로 clean, compileJava, test, jar 등의 여러 하위 태스크를 포함합니다.
    • Maven: mvn clean install 또는 mvn install
      • target 디렉토리에 모든 빌드 결과물이 생성됩니다.
      • clean: 이전에 빌드된 결과물(target 디렉토리)을 삭제합니다.
      • install: clean을 포함하여, 컴파일, 테스트, 패키징 후 로컬 Maven 저장소에 .jar 파일을 설치합니다. 다른 프로젝트에서 이 프로젝트의 라이브러리를 의존성으로 사용할 수 있게 합니다.

2. 클린 (Clean)

  • 목적: 이전에 빌드된 모든 결과물(컴파일된 클래스, 패키징된 JAR/WAR 파일 등)을 삭제하여 깨끗한 상태로 만듭니다. 빌드 오류가 발생했을 때 문제를 해결하는 데 도움이 됩니다.
    • Gradle: ./gradlew clean
      • build 디렉토리가 삭제됩니다.
    • Maven: mvn clean
      • target 디렉토리가 삭제됩니다.

3. 테스트 (Test)

  • 목적: 프로젝트 내에 작성된 모든 단위(Unit) 및 통합(Integration) 테스트를 실행합니다.
    • Gradle: ./gradlew test
      • build/reports/tests 디렉토리에 테스트 결과 보고서가 생성됩니다.
    • Maven: mvn test
      • 테스트를 실행하며, 결과는 target/surefire-reports 또는 target/failsafe-reports에 생성됩니다.

4. 실행 가능한 JAR/WAR 파일 생성 (Packaging)

  • 목적: 웹 서버 없이도 독립적으로 실행될 수 있는 Spring Boot 애플리케이션의 실행 가능한 JAR(또는 WAR) 파일을 생성합니다. 운영 환경 배포 시 주로 사용됩니다.
    • Gradle: ./gradlew bootJar
      • build/libs 디렉토리에 [프로젝트명]-[버전].jar 파일이 생성됩니다. (예: demo-0.0.1-SNAPSHOT.jar)
      • bootWar는 WAR 파일을 생성합니다.
    • Maven: mvn package 또는 mvn spring-boot:repackage
      • target 디렉토리에 [프로젝트명]-[버전].jar 파일이 생성됩니다.
      • spring-boot:repackage는 Spring Boot가 제공하는 Maven 플러그인 태스크로, 내장 서버를 포함하여 실행 가능한 JAR 파일을 만들어 줍니다. mvn package를 실행하면 자동으로 이 태스크가 포함됩니다.

5. 생성된 JAR 파일 실행

  • 목적: 위에서 생성된 실행 가능한 JAR 파일을 직접 실행합니다.
    • 명령어: java -jar build/libs/[파일명].jar (Gradle 빌드 시 경로 예시)
      • 또는 java -jar target/[파일명].jar (Maven 빌드 시 경로 예시)
      • 예시: java -jar build/libs/demo-0.0.1-SNAPSHOT.jar
    • 설명: 이 명령어를 실행하면 내장된 웹 서버와 함께 Spring Boot 애플리케이션이 구동됩니다.

6. 의존성 (Dependencies) 확인

  • 목적: 프로젝트의 모든 직접 및 전이 의존성(라이브러리가 의존하는 다른 라이브러리)을 트리 형태로 보여줍니다. 의존성 충돌 문제 해결에 유용합니다.
    • Gradle: ./gradlew dependencies
    • Maven: mvn dependency:tree

7. 프로젝트 정보 확인

  • 목적: 프로젝트의 세부 정보를 확인합니다.
    • Gradle: ./gradlew properties
    • Maven: mvn help:effective-pom (실제로 적용되는 POM 설정 확인)

8. 캐시 삭제 (Gradle)

  • 목적: Gradle 빌드 캐시를 삭제하여 빌드 문제를 해결할 때 사용합니다. (Maven은 clean으로 충분)
    • Gradle: ./gradlew cleanBuildCache

명령어 사용 팁:

  • 자동 완성: 터미널에서 명령어를 입력할 때 tab 키를 누르면 자동 완성 기능을 활용할 수 있습니다.
  • 환경 변수: JAVA_HOME 환경 변수가 올바르게 설정되어 있어야 자바 애플리케이션이 실행됩니다.
  • VS Code 통합 터미널: VS Code에서 Ctrl + ~ (물결) 키를 눌러 통합 터미널을 열고 위 명령어들을 직접 실행할 수 있습니다.
728x90
반응형