1-1) Maven

Hyoin Jeong·2022년 7월 18일
0

1. Maven

  • 빌드 도구로써 주로 자바기반의 프로젝트에서 많이 사용됩니다.
  • XML기반으로 설정 모델을 제공하고 pom.xml 파일로 작성할 수 있습니다.
    💡 POM은 project object model의 약어입니다.

Maven’s Objectives

https://maven.apache.org/what-is-maven.html

  • 위의 Maven 홈페이지에서 Maven 이 이루고자 하는 목표를 확인가능

왜 Maven을 사용할까?

  • archetypes 라는 프로젝트 템플릿을 제공 → 매번 같은 설정을 반복하지 않게 도와줌
  • 프로젝트에서 사용하는 외부 라이브러리인 dependency 를 관리해줌
  • 플러인과 외부 라이브러리를 분리하여 관리
  • dependency를 다운닫는 Repository가 로컬이 될 수도 있고 Maven Central 와 같은 공개된
    Repository가 될 수도 있음

Maven Project 생성하기

1) File > New > Project.. 를 선택

2) Maven Archetype을 선택
3) Archetype에서 maven-archetype-quickstart를 선택

4) Name, GroupId 설정

Maven coordinates

  • groupId : 회사나 단체명 ex) org.springframework, org.prgms
  • artifactId : 프로젝트명(해당 maven 프로젝트에 대한 모듈 이름) ex) spring-context, order-api, customer-service
  • version :프로젝트의 버전(기본적으로 1.0-SNAPSHOT → 배포할려면 1.0(버전)-REALEASE) ex) 5.2.15.RELEASE, 1.0-SNAPSHOT

Transitive Dependencies

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#transitive-dependencies

  • 정의 : 의존성의 의존성
  • 예시 : 만약 a가 b를 참조하고, b가 c를 참조한다면, a 는 c를 transitive 의존성으로 간주 만약 c가 d를 참조한다면, a는 d에 대해서도 transitive 의존성을 가짐

→ 이러한 경우, maven은 의존성 트리를 구성하여 동일한 groupId, artifactId에 대해서는 가장 최신의 version 정보를 사용하게 됨.

→ 이러한 기능은 때로는 좋아 보이지만, 때로는 버전 간 충돌, 라이브러리 간 충돌 등의 문제를 야기할 수 있음

(참고사항) 의존 관계 디버그
Maven Dependency Plugin을 사용하여 의존 관계 트리를 찍어볼 수 있음 → 아래 명령어 사용

0개의 댓글