- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바
- 안드로이드
- firebase google
- C++
- python
- android studio
- 연결리스트
- 백준
- 정렬
- 동적할당
- 파이썬
- 알고리즘
- sql
- 로그인
- 안드로이드 스튜디오
- til
- 배열
- 구글 로그인
- 비주얼 베이직
- Firebase
- 자료구조
- C언어
- 코딩테스트
- 프로그래머스
- Java
- oauth
- 프로그래밍 입문
- 공유대학
- 컴퓨터공학과
Archives
코딩하는 해달이
[Spring] Gradle이란? 본문
Gradle
Java나 Groovy, Kotlin등 여러 유형의 소프트웨어를 빌드할 수 있는 오픈 소스 빌드 자동화 도구이다. Gradle은 빌드하려는 대상이나 방법을 거의 고정하지 않아 유연하다.
Gradle이 자동화 할 수 있는 작업들
- Compile - Java 파일의 소스코드를 컴퓨터가 이해할 수 있도록 바이트 코드로 변환
- Test - 유닛 테스트, UI 테스트
- Packaging - 스프링 코드를 패키징 해 .jar 파일이나, .war 파일로 생성
- Deploy & Run - 서버 실행
용어 정리
- 프로젝트 - Gradle이 빌드하는 것, 프로젝트에는 빌드 스크립트가 포함되며 해당 프로젝트에 대한 태스크, 의존성, 플러그인 및 기타 구성을 정의한다.
- 태스크 - 코드 컴파일, 테스트 실행 또는 배포와 같은 특정 작업을 실행하기 위한 로직을 포함하는 기본단위
- 플러그인 - 로직과 구성을 재사용할 수 있는 수단을 제공하는 모듈, 플러그인을 사용함으로써 빌드 스크립트의 중복을 줄일 수 있다.
Gradle Project 구성
- .gradle - gradle 버전 별 엔진 및 설정 파일
- .idea - 에디터 관련 파일
- gradle/wrapper - 사용자가 Gradle을 설치하지 않아도 태스크를 실행할 수 있도록 도와줌
- gradle-wrapper.jar - Wrapper 파일로 실행 스크립트가 동작하면 Wrapper에 맞는 환경을 로컬 캐시가 다운로드 받고 명령에 해당하는 태스크 실행
- gradle-wrapper.properties - gradle Wrapper 설정 파일
- gradlew - Unix용 실행 스크립트
- gradlew.bat - Windows용 실행 스크립트
- build.gradle - 의존성이나 플러그인 설정 등 프로젝트 빌드에 대한 모든 기능 정의
- settings.gradle - 빌드할 프로젝트 정보 설정
빌드 도구 종류와 차이점
Maven
- 언어 : 주로 Java
- 구성 : XML 기반의 pom.xml 파일을 사용하여 프로젝트 의존성과 빌드 설정을 정의
- 특징
- 의존성 관리를 자동화하고, 라이프 사이클을 정의하여 특정 작업 순서 보장
- 커뮤니티에서 제공하는 많은 플러그인 사용 가능
- XML 구성이 비교적 복잡
Gradle
- 언어 : Java, Groovy, Kotlin
- 구성 : Groovy 또는 Kotlin DSL을 사용하여 build.gradle 파일로 정의
- 특징
- 유연한 구성과 커스터마이징 기능을 제공
- 태스크 기반 모델, 의존성 관리 및 빌드 과정을 설정 가능
- 병렬 빌드를 지원, 대규모 프로젝트에서 효율적
Ant
- 언어: Java
- 구성: XML 기반의 build.xml 파일을 사용
- 특징:
- 매우 유연, 기본적으로 의존성 관리 기능 제공 X
- 태스크를 직접 정의, 상대적으로 설정이 복잡
- 점진적으로 사용되며, 현대의 빌드 도구에 비해 덜 사용됩니다.
Make
- 언어: 주로 C/C++
- 구성: Makefile을 사용하여 빌드 명령과 의존성 정의
- 특징:
- 간단한 빌드 및 컴파일 작업에 적합
- 명령어를 직접 작성
- UNIX 기반 시스템에서 주로 사용
Bazel
- 언어: 다수 언어 지원
- 구성: Starlark 스크립트를 사용하여 빌드 구성을 정의
- 특징:
- 대규모 소프트웨어 프로젝트를 위해 설계
- 모듈화된 아키텍처와 강력한 캐시 기능을 제공
SBT(Simple Build Tool)
- 언어: Scala, Java
- 구성: Scala DSL로 빌드 설정을 정의
- 특징:
- Scala와 Java 프로젝트에 적합, REPL 환경을 제공하여 빠른 피드백 가능
- 의존성 관리 및 빌드 자동화 기능 지원
반응형
'개인 공부 > Spring' 카테고리의 다른 글
RESTful API (2) | 2024.10.21 |
---|
Comments