[Springboot, Gradle]SpringBoot gradle로 빌드해보기, 맛보기

작성자 : 조회수 :

스프링 시큐리티에 들어가기 앞서

 

이번에 자세히 공부하지는 않고 제가 따로 해야 할 프로젝트를 위해서 그래들 맛보기로만 공부하겠습니다.

 

빌드(Bulid)란?

컴파일(compile) + 링크(link)를 합쳐 부르는 말입니다.


제가 만든 코드들을 응용프로젝트로 실행할 수 있도록 만들어주는 것을 빌드라고 합니다.


 

프레임워크를 다루면서도 너무 당연시 여겼던 프레임워크의 구조는 누가 관리하고 빌드 해주는지,

 

내가 지금까지 개발했던 모든 프로젝트는 gradle이 관리 한다는 걸 다시 기억이 났을 때 바로 지금

 

글을 정리해보려고 합니다.

 

아주 간략하게 진행하려 합니다!

 

사실 내용을 다루기 전에는 spring.io 에서 받아오는 spring initializer를 통해서

 

간편하게 의존성 + 빌드 선택 (maven , gradle)을 연결 시켜서 프로젝트를 생성시켰기 때문에

 

Gradle을 통해 프로젝트 구조변경이나, 하위 프로젝트 등의 관리는 해본 적이 없어서 이번에 해보려고 합니다.

제가 원래 만들었던 법 (인텔리제이, Spring Initializr를 통해서 간편하게 만들 줄만 알았다 ㅠ)

 

솔직히 



Build.gradle 은 의존성을 관리하는 파일이란 것은 알았지만 settings.gradle 은 어떤 것 인지

 

알아보려 할 생각도 못 했던 것이 조금 창피했습니다.

 

지금이라도 공부할 기회가 와서 다행입니다.



Settings.gradle 파일은 프로젝트의 구조를 빌드 하는 파일로

 

기본적인 스프링 프레임워크의 구조를 만들어 빌드 하거나 변경 할 수 있는 것 같습니다.



위의 사진처럼 제가 전에 계속 만들던 프로젝트는 하나의 프로젝트로만 구성하지만

 

이제부터는 여러 모듈 프로젝트를 포함시킬 예정입니다.

 

 

 

일단 먼저 gradle 파일을 받아서 환경변수에 추가시켜줘야 합니다.

 

https://gradle.org/releases/ 여기서 원하는 버전을 받은 후




적당한 공간에 두고 bin 경로를 복사



[고급 시스템 설정 보기] 에서



사진처럼 환경 변수 추가 (자바 jdk 설치 시 했던 환경변수 추가와 같습니다.)



그럼 버전확인


그림처럼 init 설치도 가능하며 저는 그래들 7.4.2 버전을 설치했습니다.

 

Basic – groovy 그리고 나머진다 default를 따라갔습니다.

 

그 후 intelij 를 실행시켜서 해당 프로젝트 파일을 열어본다면



현재 아무것도 없고 gradle만 있는 상태로 프로젝트를 확인할 수 있습니다.




일반적으로 settings.gradle 은 단 하나의 프로젝트 구조만을 가지지만

 

강의 영상에서는 여러 모듈 프로젝트 구조를 가질 수도 있다고 설명해 줍니다.

 

 

 

정말 신기했던 점은 스크립트 파일 설정대로 그래들을 새로 reload 할 때마다 그 구조를 따라 만들어준다는

 

점 이였습니다.

 

설정에 있었던 server 파일 안에 Basic-test를 만들고 그래들을 reload하니






아래의 스크립트 설정을 통해 위의 사진처럼 알아서 만들어주는

 

프레임워크의 틀을 관리할 수 있는 것을 확인 할 수 있었습니다.

 

 

 

 

 

 

 

 

Subprojects apply plugin java를 넣어주면 오른쪽 빌드의 작업이 뜹니다.


또한 위 boot 추가시 jar도 사용할수 있게 됩니다.




재미있는 점은

 

위의 com 쪽 하위 프로젝트에서는 스프링부트를 실행시킬 어플리케이션이 필요 없기에

 

강조된 부분처럼 bootJar.enabledfalse jar를 통한 빌드가 비활성화 된걸 확인할 수 있습니다.


서버 프로젝트 쪽에는 말 그대로 서버를 실행시켜야 하기 때문에 starter web의존성을 추가하여

 

springApplication.run시킵니다.

 

8080포트로 켜지며




테스트 부분도 위와 같이 잘 동작하는지 확인해봅니다.



사진을 잘 보시면

 

각자 다른 프로젝트 때문에 comp에서 만든 프로젝트 파일들은

 

server에서 사용할 수 없게 됩니다.

 

그래서 오른쪽 빌드를 이용해서 compile 을 통해서 (어째서인지 comile은 없어서

Implementation 을 사용해서 의존성을 추가시켜줬습니다.)

 

Person클래스를 가져올 수 있는 사진입니다. (잘보면 경로가 제가 만들었던 경로 그대로 따라갑니다)



잘 동작하는 것을 확인 할 수 있습니다!


평소 직접 gradle을 통해 프로젝트를 구성하고

 

빌드하는 법을 배우고 나니깐 사용법을 모른 상태에서의 스프링 이니셜라이즈 사용하는 것과

 

후가 다를 거라고 생각이 듭니다.



참고

 

패스트캠퍼스 강의 한번에 끝내는 java/spring 웹 개발 마스터 초격차 패키지 ,

https://gitlab.com/jongwons.choi/spring-boot-security-lecture/-/blob/master/part0/1%20gradle%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EA%B5%AC%EC%84%B1.md