티스토리 뷰

반응형

Maven

pom.xml

  • 메이븐 프로젝트의 핵심
  • 메이븐 프로젝트에 대한 설정 정보를 관리하는 파일
  • 프로젝트에 필요한 의존 모듈과 플러그인 등에 대한 설정 정보를 가짐
  • 모든 메이븐 프로젝트는 루트 디렉토리에 pom.xml이 존재

 

artifact

메이븐이 관리하는 모듈의 단위

pom.xml의 artifact

위의 artifact를 해석하면 spring-context라는 식별자를 가진 5.3.10 버전의 아티팩트에 대한 의존을 추가한 것이다.

메이븐은 코드를 컴파일하거나 실행할 때 dependency로 설정한 artifact 파일을 사용한다.

 

  • 의존을 추가: 자바 어플리케이션 클래스패스에 모듈을 추가하는 것
  • artifact의 full name: 아티팩트이름-버전.jar
  • 위의 이미지는 소스코드를 컴파일 하고 실행할 때 클래스패스에 spring-context-5.3.10.jar 파일을 추가한다는 뜻

 

jar 파일이 추가되는 과정

 

1. 메이븐 로컬 레포지토리에 [그룹ID]/[아티팩트ID]/[버전] 디렉토리에 아티팩트ID-버전.jar 파일이 있는지 검사

2 - 1) 있다면? 파일을 사용

2 - 2) 없다면? 원격 중앙 레포지토리에서 해당 파일을 다운로드하여 로컬 레포지토리에 복사한 다음 사용

 

📌 메이븐은 [사용자홈폴더]/.m2/repository 폴더를 로컬 리포지토리로 사용

 

의존 전이 (Transitive Dependencies)

maven의 dependencies 모습

dependencies 아래에 spring-context가 있고 그 아래에 spring-aop, spring-beans, spring-core, spring-expression이 있다. spring-context를 사용하기 위해서 다른 artifact들도 필요한 것이다. 의존하는 artifact가 있다면 메이븐은 다른 artifact도 같이 다운로드 한다. 그리고 의존하는 대상의 의존하는 대상도 함께 다운로드 한다.

 

src 디렉토리 아래에 main 디렉토리가 있고 그 아래에 java, resources 디렉토리들이 위치한다. 위의 이미지에는 없지만 main 아래에 webapp 디렉토리가 위치할 때가 있다.

 

  • java: 자바 코드가 위치
  • resources: 자바 코드 외에 다른 파일들이 위치
  • webapp: JSP 소스 코드나 WEB-INF/web.xml 파일이 위치

 

Gradle

주석으로 gradle의 설명을 대체하겠다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함