Gradle을 통해 라이브러리 관리하기

woply·2022년 1월 7일
0

Build-Tool

목록 보기
1/1
post-thumbnail

0. Gradle이란?

gradle은 자바 웹 프로그래밍에서 자주 사용하는 빌드 도구다. 빌드 도구는 '빌드 자동화 툴'으로도 불린다. 말 그대로 무언가를 만들 때 편리함을 더하기 위해 사용하는 자동화 도구다. Gradle은 이전 세대의 빌드 도구인 AntMaven의 장점을 더하고, 단점을 보완해 만들어졌다. 현재 가장 진보한 버전의 자바 웹 프로그래밍 빌드 도구라 할 수 있다.

1. build.gradle를 통해 간편하게 라이브러리 추가가 가능하다.

Gradle을 사용할 때 가장 큰 편익 중 하나는 라이브러리 관리가 간편해진다는 점이다. build.gradle을 통해 의존이 필요한 라이브러리 주입이나 플러그인 설정을 할 수 있다. 아래와 같이 build.gradle을 통해 간단한 방법으로 필요한 라이브러리를 추가하거나 버전을 변경할 수 있다.

repositories: 아래 dependencies에 추가되어 있는 라이브러리를 다운로드는 곳이다. mavenCentral()에서 junit과 assertj를 다운로드 받고 있다는 것을 알 수 있다.

dependencies: 다양한 의존 관계 설정을 할 수 있다. 빌드 도구 없이 순수 자바 웹 프로젝트 파일을 만들게 되면 필요한 라이브러리를 jar 파일 형태로 직접 추가해야한다. dependencies 을 이용하면 위와 같이 간단하게 라이브러리를 추가하거나 버전을 변경할 수 있다.

2. 용도에 맞는 의존관계를 설정할 수 있다.

1) api / compile / implementation: 프로젝트 컴파일 과정에서 필요한 라이브러리를 의미한다. apicompile은 기본적으로 동일한 기능을 수행한다. apply plugin이 java-library일 경우엔 api를 사용하고, java일 경우엔 compile을 사용한다.

implementationapi의 차이점은 '프로젝트 소스의 일부로 포함을 하는가?' 여부에 있다. api를 사용하면 종속 관계에 있는 라이브러리의 코드를 볼 수 있다. 하지만 implementation을 사용하면 종속 관계에 있는 라이브러리의 코드를 볼 수 없다.

예를 들어, Library 1Library 2를 사용하는 종속 관계일 때, api를 사용하면 프로젝트에서 Library 2의 코드를 볼 수 있다. 반면, implementation를 사용하면 Library 2의 코드를 볼 수 없다.

2) runtime: 프로젝트 실행 과정에서 필요한 라이브러리를 의미한다.

3) testCompile / testImplementation: 프로젝트의 테스트 소스를 컴파일하고 실행하는 데 필요한 라이브러리를 의미한다. JUnit이 대표적이다.

4) testRuntime: 테스트 실행 과정에서 필요한 라이브러리를 의미한다.


학습 및 포스팅 작성에 참고한 링크:
1) https://yeonyeon.tistory.com/89
2) https://docs.gradle.org/current/userguide/dependency_management_for_java_projects.html#sec:configurations_java_tutorial

profile
7년간 마케터로 일했고, 현재는 헤렌에서 백엔드 개발자로 일하고 있습니다. 고객 가치를 설계하는 개발자를 지향하며, 개발, 독서, 글쓰기를 좋아합니다. 업이 심오한 놀이이길 바라는 덕업일치 주의자입니다.

0개의 댓글