[Spring Boot] dependencies 추가

froajnzd·2024년 7월 19일
0

java

목록 보기
7/11
post-thumbnail

"spring initializr에서 lombok을 추가하지 못했다!!ㅠㅠ
다시 초기 프로젝트를 만들어야 할까?ㅠㅠ 너무 귀찮다!"

라고 생각하는 사람이 있을까?
그렇다면 이 글을 보는 것이 정답일 것이다.

스프링 부트로 개발을 하는데 어디서 라이브러리를 가져와야 할 텐데,,,
어떻게 가져올 수 있을까?

라이브러리를 설치해서 내 프로젝트 안에다 끌어넣어야 하나??

일단, 스프링 부트는 "똑똑하기" 때문에 알아서 라이브러리들을 관리해주고 있다.
내가 사용할 라이브러리를 스프링 부트에게 알려주면, 사용가능한 라이브러리를 알아서 내 프로젝트에 설치해준다.

일례로 Lombok라이브러리를 추가해 보도록 하겠다.

내 ide 왼쪽에 프로젝트 디렉토리 구조를 볼 수 있다.
요기서 build.gradle을 찾아보겟당
(맨처음 빌드도구로 gradle을 선택한 경우에만 build.gradle로 나타난다! maven을 선택한 경우에는 ...ㅇㅏㅁㅏ... .maven ?)

파일로 들어가보도록 하겠다!

크게 java, repositories, dependencies, task.named() 로 나눠진 모습을 볼 수 있다..

여기서 우리가 하고 싶은 일은 dependencies를 추가하는 것!

여기다가 뭐라고 머라고 (처음에 initializr에서 추가한 게) 자동으로 추가된 것 같은데, 앞에 써있는 implementation, testRuntimeOnly,,, 이런건 뭐고 뒤에 String은 뭐라고 써야 맞는거지?

라는 생각이 드는 것이 당연하다

dependencies를 추가하고 싶다면 maven repository에서 찾아온다

아래 링크에서 내가 추가하고 싶은 라이브러리를 검색하면, 원하는 코드가 나온다!!! 맨 아래에서 Gradle(Short)처럼 내가 원하는 빌드 환경에 따라서 가져올 수 있다!

https://mvnrepository.com/

앞에 implementation,, 이런 키워드들은 뭐지?

우리가 쓸 수 있는 키워드들은 여러 개가 있다!

해당 라이브러리들이 컴파일 시점, 런타임 시점에 필요한지! 에 따라서 해당 키워드를 선택할 수 있다.(앞에 Lombok처럼 maven repository에서 권장사항으로 픽스해둘 수도 있당. 실제로 Lombok은 컴파일 시점에서 개발자에게 필요한 메소드를 생성해주는 라이브러리이다.)

  • implementation : 프로젝트의 컴파일 시간과 실행 시간 모두에 의존성 추가

  • api : implementation과 유사하지만, 프로젝트에 의해 노출되어 해당 프로젝트를 의존하는 다른 프로젝트에서도 사용할 수 있게 함

  • compile : 모든 모듈을 재빌드

  • compileOnly : 컴파일 시간에만 필요한 의존성 추가, 실행시간에는 포함되지 않음. 라이브러리가 컴파일 시에 참조된다

  • runtimeOnly : 실행시간에만 필요한 의존성 추가, 컴파일 시간에는 포함되지 않음

  • testImplementation, testRuntimeOnly : 테스트 컴파일 시간과 실행 시간에만 필요한 의존성 추가, 주로 단위 테스트나 통합테스트를 위한 라이브러리

여기서 compile은 최신 gradle버전에서 빠져있다. 사용하지 말도록 하자.

그리고 최대한 필요성을 생각하고 키워드들을 생각하도록 하자.

external library

profile
Hi I'm 열쯔엉

0개의 댓글