
Gradle은 빌드 자동화 시스템으로 빌드, 테스트, 배포와 같은 작업을 자동화하는 데 사용된다. Java와 같은 다양한 언어와 플랫폼을 지원한다. 다른 빌드 도구로는 Apache Maven, Apache Ant가 있다.
대규모 프로젝트에서 의존성 관리와 빌드 작업을 효율적으로 처리하는 데 유용한다.
빌드해야 할 소프트웨어의 단위이다.
애플리케이션, 라이브러리 등이 있다.
빌드 과정 중에서 수행해야 할 작업이다.
컴파일, 테스트, 배포를 위한 패키징 등이 있다.
Gradle 빌드 스크립트는 주로 Groovy 또는 Kotilin DSL을 사용하여 작성된다.
해당 스크립트에는 프로젝트의 빌드, 테스트, 배포 작업이 어떻게 이루어져야 하는지에 대한 정보가 포함되어있다.
Spring Boot에서 gradle을 사용할 때, build.gradle이라는 스크립트 파일을 빌드 스크립트로 사용한다.
프로젝트에 필요한 라이브러리나 플러그인을 build.gradle에 선언하면 Gradle이 이를 자동으로 다운로드하여 프로젝트 빌드 과정에서 사용한다.
해당 라이브러리에 해당하는 저장소에서 의존성을 가져오거나, 로컬 파일을 지정하여 사용 가능하다.
./gradlew tasks--all옵션을 추가하면 숨겨진 태스크까지 볼 수 있다../gradlew tasks
./gradlew build./gradlew build
./gradlew clean./gradlew clean
./gradlew clean build
./gradlew test./gradlew test
./gradlew bootJar.jar파일로 변환된다. 이때 .jar파일은 애플리케이션을 실행할 때 필요한 모든 의존성을 포함하여 해당 파일만 있어도 실행이 가능하다../gradlew bootJar
./gradlew jar.jar파일로 변환한다. 하지만 해당 .jar파일은 의존성 라이브러리가 포함되지 않는다. 만약 의존성을 가지고 있는 프로젝트였다면 단독으로 실행할 수 없어 추가 설정이 필요하다../gradlew jar


애플리케이션, 빌드, 빌드 설정, 문서 등과 같이 각 작업에 따라 태스크가 할당되어있는 것을 볼 수 있다. 하나씩 읽어보면 다 이해가 되는 설명들이었다.
가만히 보고있으니 Intellij에 오른쪽 사이드바에 Gradle에 있는 Tasks와 같은 구조임을 떠올리게 되었다. 해당 태스크들을 터미널에 명령어를 작성하지 않고 아래 사진에서 태스크를 선택하여 간단하게 실행 가능함을 알게 되었다.

.jar파일로 패키징하여 파일로써 애플리케이션을 실행할 수 있도록 해보았다.
모든 의존성을 포함하여 패키징하는 bootJar를 이용해서 패키징하였다. 빌드가 성공된 후 /build/libs/에 .jar파일이 생성됨을 확인할 수 있다.