스프링 - [ Maven & Gradle ]

JiwonMoon·2021년 11월 18일
0

Spring

목록 보기
1/10
post-thumbnail

1. 빌드 관리 도구란?

  • 우리가 프로젝트에서 작성한 java 코드와 프로젝트 내에 필요한 각종 xml, properties, jar 파일들을 JVM이나 WAS가 인식할 수 있도록 패키징 해주는 빌드 과정 = "빌드 자동화 도구" 라고 할 수 있다.
  • 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램이라 할 수 있다.
  • 애플리케이션을 개발하면서, 일반적으로 개발에 필요한 다양한 외부 라이브러리들을 다운로드하고, 해당 라이브러리를 사용하여 개발해야하는 상황이 많은데, 이 때 각 라이브러리들을 번거롭게 모두 다운 받을 필요없이, 빌드도구 설정파일에 필요한 라이브러리들을 설정파일을 통해 자동으로 다운로드 해주고 이를 간편하게 관리해 주는 도구이다.

2. Maven 이란?

Maven은 자바 프로젝트의 빌드를 자동화 해주는 빌드 관리 툴이다.

  • 빌드 중인 프로젝트, 빌드 순서, 다양한 외부 라이브러리 종속성 관계를 pom.xml파일에 명시한다. ( 즉 xml 기반으로 작성한다. )
  • Maven은 외부저장소에서 필요한 라이브러리와 플러그인들을 다운로드 한 다음, 로컬시스템의 캐시에 모두 저장한다.
  • 상대적 학습 장벽이 높고 라이브러리가 서로 의존하는 경우 복잡해질 수 있다.

즉, 자바 소스를 compile하고 package해서 deploy하는 일을 자동화 해주는 것이다. 또한 "Spring Boot Data JPA Starter" 모듈을 사용하여 프로젝트를 개발하고 싶다면 메이븐레포지토리에서 해당 모듈을 검색하여 xml 설정파일에 추가하여 사용할 수 있다.

3. Maven이 참조하는 설정 파일

Maven 전체를 보기보다 프로그래밍에 직접적인 연관이 있는 두 개의 설정파일을 알아보면 된다

1) settings.xml
settings.xml은 maven tool 자체에 관련된 설정을 담당한다.
MAVEN_HOME/conf/ 아래에 있다. ( * MAVEN_HOME은 환경변수에 설정한 경로)
Maven 자체에 설정 값을 바꾸는 일은 일단 잘 없으므로 넘어가고 기획한대로 pom.xml을 살펴본다.

2) pom.xml
특정 자바 프로젝트에 빌드 툴로 maven을 설정했다면, 프로젝트 최상위 디렉토리에 "pom.xml"이라는 파일이 생성되었을 것이다.
pom.xml은 POM(Project Object Model)을 설정하는 부분으로 프로젝트 내 빌드 옵션을 설정하는 부분이다.

4. Gradle이란?

Gradle은 그루비(Groovy)를 기반으로 한 빌드 관리 도구이다. Ant와 Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구이다.

  • 빌드 스크립트를 XML 언어가 아닌 JVM에서 동작하는 스크립트 언어 ‘그루비’ 기반의 DSL(Domain Specific Language)를 사용한다.

References (참고 자료)

profile
기술에 대한 사용 목적과 구동 원리를 이해 및 정리하기 위한 저장소로 사용 중입니다.

0개의 댓글