Recent Posts
Recent Comments
Link
11-21 14:38
Today
Total
관리 메뉴

삶 가운데 남긴 기록 AACII.TISTORY.COM

Spring boot todo - Gradle 라이브러리 관리 본문

DEV&OPS/Java

Spring boot todo - Gradle 라이브러리 관리

ALEPH.GEM 2022. 8. 29. 10:25

Gradle 빌드 도구

빌드 도구는 컴파일, 라이브러리 다운로드, 패키징, 테스팅 등을 자동화 해주는 도구를 말합니다.

프로젝트가 커지면 라이브러리가 많아지므로 전체를 빌드하기에는 비효율 적이므로 빌드를 나눠서 해야합니다. 

gradle은 이런 컴파일, 빌드, 유닛 테스트 등을 코드(그루비 언어)로 관리해줍니다.

 

 

build.gradle

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

group = 'ds.co.kr'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
	maven { url 'https://repo.spring.io/milestone' }
	maven { url 'https://repo.spring.io/snapshot' }
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
	useJUnitPlatform()
}
plugins
자바를 컴파일 하려면 자바 플러그인이 필요한데, org.springframework.boot 와 io.spring.dependency-management 도 마찬가지로 플러그인이 필요하여 id를 등록해주었습니다.
group
보통 artifact(어플리케이션)을 배포하는데 사용되는 메타 데이터입니다.
version
프로젝트의 버전을 명시합니다.
sourceCompatibility
자바 플러그인의 자바 버전을 명시합니다. 
이 자바 버전을 이용해 소스를 컴파일 합니다.
Lombok
롬복 라이브러리는 어노테이션으로 컴파일시 그에 상응하는 코드를 자동 생성해주는 라이브러리 입니다.
이때 annotationProcessor가 필요하기 때문에 configurations에 명시 해준 것입니다.
그리고 dependencies에 명시하여 이 annotationProcessor로 롬복을 사용하도록 합니다.
Repository
라이브러리를 다운로드 받기위한 저장소(Repository)를 등록합니다.
주로 mavenCentral을 주로 이용합니다.
Dependency
프로젝트에서 사용할 라이브러리를 명시합니다.
여기에 명시된 라이브러리는 Repository에서 다운로드하여 설치됩니다.
implementation이나 compileOnly 등은 라이브러리의 scope를 지정하는 것입니다.
Test
유닛 테스트를 위한 JUnitPlatform 을 사용하기위해 명시한 것입니다.

 

 

라이브러리 추가

샘플로 구글 구아바 라이브러리를 추가해봅니다.

https://mvnrepository.com 

에서 google guava 를 검색하고 원하는 버전을 선택하면 maven이나 gradle에 추가해주는 구문을 복사해서 build.gradle 의 dependency에 추가하면 됩니다.

guava 검색 후 나오는 버전 중에 알맞는 버전을 클릭합니다.
버전을 선택하고 나오는 화면에서 gradle 탭을 선택하면 dependencies에 추가할 코드를 알려줍니다.

해당 코드를 복사하여 gradle 스니펫에 아래처럼 추가해 줍니다.

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	// https://mvnrepository.com/artifact/com.google.guava/guava
	implementation group: 'com.google.guava', name: 'guava', version: '31.1-jre'
}

 

 

Lombok

롬복은 빈 객체의 getter, setter, constructor, builder를 자동으로 생성해주는 라이브러리입니다.

이클립스에서 사용하려면 jar 파일을 다운로드 받아야 합니다.

https://mvnrepository.com 에서 검색하여 jar 파일을 다운로드 받습니다.

여기서는 1.18.24를 다운받겠습니다.

cmd를 실행하고 jar 파일이 있는 디렉토리로 이동 후 아래 명령어를 실행합니다.

java -jar lombok-1.18.24.jar

롬복 설치화면이 뜨면 이클립스IDE가 있는 경로를 설정하고 Install/Update를 클릭합니다.

설치가 완료되면 Quit Installer를 클릭한 후 이클립스를 재시작 합니다.

Eclipse 메뉴 ▶ Help ▶ About Eclipse IDE 눌러보면 하단에 Lombok v1.18.24 (https://projectlombok.org) 이 설치되었음을 확인할 수 있습니다.

gradle dependencies에는 lombok을 등록했지만 롬복 어노테이션을 이클립스에서는 문법오류로 인식하기 때문에 이클립스에도 설정을 해줘야 합니다.

프로젝트 우클릭 ▶Properties ▶ Java Compiler ▶ Annotation Processing 을 선택 후 아래처럼 Enable project specific settings에 체크한 후 Apply and Close를 클릭합니다.

 

 

REST API 테스트용 클라리언트

https:://www.postman.com/download

 

 

 

 

 

 

 

 

 

728x90