[Java] Maven, Gradle 빌드 관리 도구

델버·2022년 5월 19일
0

Java

목록 보기
5/8

해당 글은 전부 아래 영상에서 가져왔고 일부를 덧붙였다.


빌드 관리도구

  • 프로젝트에 필요한 xml, properties, jar 파일들을 자동으로 인식하여 빌드 해주는 도구

  • 소스 코드를 컴파일, 테스트, 정적분석 등을 하여 실행 가능한 앱으로 빌드해줌

  • 프로젝트 정보관리, 테스트 빌드, 배포 등의 작업을 진행해줌

  • 외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트의 관리해줌

  • 자바의 대표적인 빌드 도구: Ant, Maven, Gradle


Maven

  • 자바의 대표적인 관리 도구였던 Ant를 대체하기 위해 개발됨
  • 프로젝트의 외부 라이브러리를 쉽게 참조할 수 있게 pom.xml 파일로 명시하여 관리
  • 참조한 외부 라이브러리에 연관된 다른 라이브러리도 자동으로 관리됨
  • LifeCycle이라는 빌드 순서가 미리 정해져 있다.

사용이유

  • 기존에 사용하던 Ant는 빌드의 기능만 가지고 있음
  • 자동으로 라이브러리를 관리해주는 기능이 추가된 Maven을 사용
  • 다운받아 사용하던 라이브러리에 변동 사항이 있으면 자동으로 업데이트하여 적용됨

Ant와 Maven 비교

메이븐 대표 태그

  • modelVersion : maven의 버전
  • groupId: 프로젝트 그룹 id를 뜻하며, 일반적으로 대표하는 사이트 도메인을 역순으로 적어 사용 (ex: thinkground.studio → studio.thinkground)
  • artifactId: groupId 외에 다른 프로젝트와는 구분될 수 있는 프로젝트의 Id를 작성
  • version: 프로젝트의 버전을 의미하며 개발 단계에 따라 구분하여 작성
  • name: 프로젝트의 이름
  • description: 해당 프로젝트의 간략한 설명을 작성
  • properties: pom.xml 파일 내에서 빈번하게 사용되는 중복 상수를 정의하는 영역. 해당 영역의 상수를 사용하기 위해서는 ${태그명}의 형태로 사용하면 됨
  • dependendcies: 해당 프로제긑에서 의존성을 가지고 사용하는 라이브러리를 정의하는 영역. 각 라이브러리마다 태그를 사용하여 구분
  • build: 프로젝트 빌드와 관련된 정보를 설정하는 영역

Gradle

  • Groovy 스크립트를 활용한 빌드 관리 도구
  • Google에서 Android용 공식 빌드 도구로 Gradle을 택함
  • 멀티 프로젝트의 빌드에 최적화하여 설계됨
  • Maven에 비해 더 빠른 처리속도를 가지고 있음
  • Maven에 비해 더 간결한 구성이 가능함

Gradle & Maven 비교

  • Gradle에 비해 Maven이 점유율이 더 높지만 성능은 떨어짐

  • Maven에 비해 Gradle이 대규모 프로젝트에서의 성능이 좋음

  • Maven: pom.xml , Gradle: build.gradle

  • Gradle은 설치 없이 사용할 수 있다.(Gradle Wrapper)

  • 팔이 안쪽으로 굽는 Gradle에서 설명하는 Maven과의 차이점https://gradle.org/maven-vs-gradle/

Gradle 대표 용어

  • repositories: 라이브러리가 저장된 위치 등 설정
  • mavenCentral: 기본 Maven Repository
  • dependencies: 라이브러리 사용을 위한 의존성 설정

대표 repository 사이트

https://mvnrepository.com/


참고

위 글은 전부 아래 영상에서 가져왔고 일부를 덧붙였다.

Maven에 대한 설명과 예시

Gradle 공식 웹페이지

Maven 공식 웹페이지

https://maven.apache.org/

0개의 댓글