본문 바로가기
Spring/Spring-detail

빌드 관리 도구 ( Gradle / Maven )

by YoonJong 2022. 9. 14.
728x90

프로젝트에서 필요한 xml, proerties, jar 파일들을 자동으로 인식하여 빌드해주는 도구이다.

소스 코드를 컴파일, 테스트 등을 하여 실행가능한 앱으로 빌드한다.

프로젝트 정보 관리, 테스트 빌드, 배포 등의 작업을 진행한다.

외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트의 관리를 해준다.

 

자바의 대표적인 빌드 도구로는 Maven, Gradle 이 있다.

 

Gradle VS Maven

Gradle 에 비해 Maven 이 점유율은 높지만, 점차 역전하고 있다.Gradle에 비해 Maven 의 성능이 떨어진다.

Maven에 비해 Gradle이 대규모 프로젝트에서의 성능이 좋다 -> 간결하다.

Maven : pom.xml  /  Gradle : build.gradle

 

메이븐 , 그레이들 모두 각각의 디펜던시는 아래 사이트에서 버전 및 코드를 확인할 수 있다.

https://mvnrepository.com/


그레이들 ( Gradle )

- groovy 스크립트를 활용한 빌드 관리도구

- 멀티 프로젝트의 빌드에 최적화 하여 설계됨

- Maven 에 비해 더 빠른 처리속도를 가지고 있다.

- Maven 에 비해 더 간결한 구성이 가능

 

plugins : 현재 버전 등 확인 가능

repositories : 라이브러리가 저장된 위치 등 설정

dependencies : 라이브러리 사용을 위한 의존성 설정

plugins {
    id 'org.springframework.boot' version '2.6.11'
    id 'io.spring.dependency-management' version '1.0.13.RELEASE'
    id 'java'
}

group = 'studio.thinkground'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

 

 


메이븐 ( Maven ) 

- 프로젝트의 외부 라이브러리를 쉽게 참조할 수 있게 pom.xml 파일로 명시하여 관리

- 참조한 외부 라이브러리에 연관된 다른 라이브러리도 자동으로 관리

- XML 기반의 빌드 스크립트

- pom.xml 로 편하게 Dependency 관리

- 라이프 사이클 가능( clean, install 등.. ) -> 빌드 순서 관리 가능

 

groupId : 프로젝트 그룹 id , 일반적으로 대표하는 사이트 도메인을 역순으로 적어사용

artifactId : groupId 외에 다른 프로젝트와 구분될 수 있는 프로젝트의 id 를 작성

version : 프로젝트의 버전을 의미

name : 프로젝트 이름

description : 프로젝트의 간단한 설명 작성

properties : 파일 내에서 빈번하게 사용되는 중복 상수를 정의하는 영역

dependendies : 해당 프로젝트에서 의존성을 가지고 사용하는 라이브러리를 정의하는 영역

build : 프로젝트 빌드와 관련된 정보를 설정하는 영역

 

 

 

참고

https://www.youtube.com/watch?v=3Jp9kGDb01g&list=PLlTylS8uB2fBOi6uzvMpojFrNe7sRmlzU&index=2

728x90

댓글