[Maven] 메이븐과 리포지토리

2022. 2. 3. 16:00·Java

0. 메이븐 이란?


메이븐이란 Apache에서 개발하고 관리하는 오픈 소스 빌드 도구이다. 의존성 관리 툴로도 많이 사용된다.

정리하자면 프로젝트 빌드, 관리에 사용하는 도구이다.

 

 

 

1. 메이븐의 작동 방식



pom.xml에서 선언한 dependency들을 저장소로 불러와 사용하는데 그 과정은 아래와 같다.

 

  1. Maven 프로젝트에서  pom.xml 파일을 읽는다.
  2. Local Repository에 파일이 있는지 체크한다.
  3. 만약 필요한 파일이 없다면 Central Repository에 요청한다.
  4. Central Repository로부터 정보를 가져온다.
  5. 그 정보를 Local Repository에 저장한다.
  6. 모든 준비가 갖춰지면 프로젝트를 실행시킨다.

 

 

 

 

2. Local Repository


로컬 리포지토리는 메이븐 프로젝트를 활용하는 사용자의 컴퓨터 홈디렉토리에 저장되어있다.

경로는 .m2 > repository 이다.

 

로컬 리포지토리 확인👇👇👇👇👇👇

https://myvelop.tistory.com/75

 

[Maven] 메이븐 로컬 저장소 사용하기 (+복구하기)

1. 로컬 저장소 확인하기 Git Bash나 Hyper를 이용해서 다음의 명령어를 쳐보자. $ cd .m2/repository/ $ ls -al -결과 total 8 drwxr-xr-x 1 사용자이름 197609 0 1월 28 19:32 ./ drwxr-xr-x 1 사용자이름 19760..

myvelop.tistory.com

 

 

 

 

3. Central Repository란?


센트럴 리포지토리 홈페이지 👇👇👇👇👇👇

https://repo.maven.apache.org/maven2/

 

 

Central Repository:

 

repo.maven.apache.org

메이븐 인터넷 저장소이다. 잘 알려진 보편적인 jar파일이 Apache Central 저장소에 보관되어있다.

사용자는 환경설정을 통해 외부 레파지토리에서 필요로 하는 artifact들을 다운로드받을 수 있다.
여기서 artifact란 여러 가지 분야에서 여러 가지 의미로 쓰이는데

그 중 메이븐에서의 정의에 의하면 메이븐의 빌드의 결과로 생기는 jar, war 등을 의미한다.

 

Central Repository 홈페이지에 들어가면 여러가지 경로가 존재한다.

사용자는 이 파일들을 원격 저장소에서 로컬로 다운로드받아 사용하는 것이다.

 

 

로컬 저장소에서 사용했던 하이버네이트를 확인해보자.

org > hibernate > hibernate-core 경로를 타고 들어가면

하이버네이트의 파일들도 가지고 있다.

 

'Java' 카테고리의 다른 글
  • 처음부터 다시 배우는 Java 동시성 제어
  • Remote JVM Debug (feat. IntelliJ, k8s)
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (210)
      • 끄적끄적 (6)
      • Spring (19)
      • Java (3)
      • Redis (2)
      • Test (3)
      • 대외활동 (36)
        • 부스트캠프 (23)
        • IT커뮤니티 (5)
        • 글또 (5)
        • 컨퍼런스 (3)
      • Infra (5)
        • Docker (1)
        • Jenkins (1)
        • AWS (1)
      • CS (26)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
      • MySQL (7)
      • Git & GitHub (16)
        • Git (12)
        • Github Actions (1)
        • 기타(마크다운 등) (3)
      • 프로젝트 (2)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • Python (12)
      • 레거시모음 (64)
        • 스프링 (11)
        • 자바 클래스&메소드 (1)
        • 오류해결 (18)
        • JSP & Servlet (12)
        • 자바스크립트 기초 (3)
        • React (2)
        • 이클립스 (1)
        • 알고리즘 문제풀이 (16)
      • 디자인패턴 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

    MySQL
    부스트캠프 멤버십
    알고리즘
    Spring
    웹개발
    부스트캠프 7기
    스프링
    자바스크립트
    자바
    부스트캠프
    jsp
    GitHub
    스프링부트
    Git
    운영체제
    os
    Python
    오류해결
    java
    파이썬
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
gakko
[Maven] 메이븐과 리포지토리
상단으로

티스토리툴바