티스토리 뷰
./gradlew bootRun
이란?
./gradlew bootRun
은 Gradle 프로젝트, 특히 Spring Boot 애플리케이션을 개발 모드에서 실행하는 가장 일반적인 명령어입니다.
각 부분을 분해해서 설명해 드릴게요.
./gradlew
(Gradle Wrapper)gradlew
는 "Gradle Wrapper"의 약자입니다.- 역할: 이 스크립트는 해당 프로젝트에 필요한 특정 버전의 Gradle을 자동으로 다운로드하고 사용하게 해주는 역할을 합니다.
- 장점:
- 개발 환경에 Gradle이 설치되어 있지 않아도 프로젝트를 빌드하고 실행할 수 있습니다.
- 팀원 모두가 동일한 Gradle 버전으로 작업하게 하여 빌드 환경의 일관성을 유지하고 "내 컴퓨터에서는 되는데 네 컴퓨터에서는 안돼" 같은 문제를 방지합니다.
.
은 현재 디렉토리를 의미하므로, 프로젝트 루트 디렉토리에서 이 스크립트를 실행한다는 뜻입니다. (Windows에서는gradlew.bat
으로 실행합니다.)
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
파일을 설치합니다. 다른 프로젝트에서 이 프로젝트의 라이브러리를 의존성으로 사용할 수 있게 합니다.
- Gradle:
2. 클린 (Clean)
- 목적: 이전에 빌드된 모든 결과물(컴파일된 클래스, 패키징된 JAR/WAR 파일 등)을 삭제하여 깨끗한 상태로 만듭니다. 빌드 오류가 발생했을 때 문제를 해결하는 데 도움이 됩니다.
- Gradle:
./gradlew clean
build
디렉토리가 삭제됩니다.
- Maven:
mvn clean
target
디렉토리가 삭제됩니다.
- Gradle:
3. 테스트 (Test)
- 목적: 프로젝트 내에 작성된 모든 단위(Unit) 및 통합(Integration) 테스트를 실행합니다.
- Gradle:
./gradlew test
build/reports/tests
디렉토리에 테스트 결과 보고서가 생성됩니다.
- Maven:
mvn test
- 테스트를 실행하며, 결과는
target/surefire-reports
또는target/failsafe-reports
에 생성됩니다.
- 테스트를 실행하며, 결과는
- Gradle:
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
를 실행하면 자동으로 이 태스크가 포함됩니다.
- Gradle:
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
- Gradle:
7. 프로젝트 정보 확인
- 목적: 프로젝트의 세부 정보를 확인합니다.
- Gradle:
./gradlew properties
- Maven:
mvn help:effective-pom
(실제로 적용되는 POM 설정 확인)
- Gradle:
8. 캐시 삭제 (Gradle)
- 목적: Gradle 빌드 캐시를 삭제하여 빌드 문제를 해결할 때 사용합니다. (Maven은
clean
으로 충분)- Gradle:
./gradlew cleanBuildCache
- Gradle:
명령어 사용 팁:
- 자동 완성: 터미널에서 명령어를 입력할 때
tab
키를 누르면 자동 완성 기능을 활용할 수 있습니다. - 환경 변수:
JAVA_HOME
환경 변수가 올바르게 설정되어 있어야 자바 애플리케이션이 실행됩니다. - VS Code 통합 터미널: VS Code에서
Ctrl + ~
(물결) 키를 눌러 통합 터미널을 열고 위 명령어들을 직접 실행할 수 있습니다.
728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- java web-mvc
- React
- jstl(java standard tag library)-core
- 인텔리제이(intellij)
- java.sql
- 메이븐(maven)
- await
- MainActor
- java-개발 환경 설정하기
- 표현 언어(expression language)
- .submit()
- 스프링 프레임워크(spring framewordk)
- jsp 오픈 소스
- In App Purchase
- error-java
- jstl(java standard tag library)
- System.Diagnostics
- nl2br
- 진수 변환
- 제품 등록
- docker
- java 키워드 정리
- 스프링 시큐리티(spring security)
- REST API
- 스프링 프레임워크(spring framework)
- 특정 문자를 기준으로 자르기
- system.io
- 문자 자르기
- 람다식(lambda expression)
- 스프링 시큐리티(spring security)-http basic 인증
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함