성장일기 : 문과생의 개발 여정 (งᐖ)ว ( ᐛ )و

메이븐 (Maven) 본문

백엔드개발/Spring

메이븐 (Maven)

hyemi_flora 2024. 3. 14. 08:42
03_메이븐.txt

# Maven

 - 자바 프로젝트 자동 관리 도구
 - 프로젝트 진행 하면서 필연적으로 발생하는 다양한 작업들을 자동으로 관리해주는 도구
     ex> 라이브러리 관리 (JSTL 직접 다운로드, 및 프로젝트 등록)
         라이브러리 버전 관리 (다른 버전으로 다시 다운받고 예전버전 보관하고 등)
         프로젝트 버전 관리 (프로젝트 업데이트하면 버전 이름 바꾸고 등등)
         프로젝트 배포 관리 (완성된 프로젝트 빌드)
 - 프로젝트 내부의 pom.xml을 통해 전체 프로젝트를 손쉽게 관리할 수 있다

# pom.xml

 - 해당 프로젝트에 대한 여러가지 설정 및 의존성 정보들을 담고 있다
 - pom.xml 수정하고 저장할 때마다 프로젝트에 바로 반영된다

 <modelVersion> : 메이븐 버전 (pom 버전)
 <groupId>        : 해당 프로젝트의 그룹 ID (그룹ID : 회사이름)
 <artifactId>    : 프로젝트의 프로젝트 명
 <name>            : 프로젝트 명
 <packaging>    : 해당 프로젝트 빌드 결과가 무엇일지 설정
 <version>        : 프로젝트의 현재 버전
 <properties>    : pom.xml 내에서 사용할 변수
                     <properties>
                    <java-version>1.8</java-version> 
                    -> 1.6을 1.8로 바꾸고 아래쪽에 1.6 버전 사용하는곳을 바꿔준 후
                    <source>${java-version}</source>
                    <target>${java-version}</target>
                      프로젝트 우클릭 -> Maven -> Update project 하면 버전이 바뀐다.
 <dependencies> : 이 프로젝트가 의존해야하는 외부의 프로젝트들
                   이곳에 등록한 프로젝트들은 메이븐이 자동으로 다운로드 해서 프로젝트에 포함시킨다
                   다운로드한 파일들은 사용자/.m2/repository에 보관
                   -> C:\Users\Gi7E-36\.m2\repository\org\springframework
 <dependency>    : 의존하는 프로젝트의 pom.xml 정보를 적어 등록할 수 있다
                   해당 외부 프로젝트의 <groupId>, <artifactId>, <version> 등을 적어 우리 프로젝트에 포함시킨다
                   <scope> 설정을 통해 우리 프로젝트에서 어느정도 까지 필요한지 설정할 수 있다
# <scope>
 - 외부 라이브러리의 성질에 따라 특정 경우에 필요없는 라이브러리들이 있을 수 있다.

 - compile    : 반드시 필요한 의존성, 컴파일에도 사용되고 배포에도 포함된다. (기본값)
 - runtime    : 컴파일 할때는 필요없지만 해당 프로젝트 실행할때는 필요한 의존성 (ojdbc)
                컴파일에 사용되지 않지만 프로젝트 배포시에는 포함된다.
 - provided : 컴파일 할 때는 필요하지만 그 이후 실행시 필요없는 의존성 (JSP- 문법을 사용해 컴파일하고 나면 자바, 자바 컴파일 후 클래스) 
               컴파일에는 사용되지만 프로젝트 배포에는 포함되지 않는다
 - test        : 테스트 단계에서만 필요한 의존성, 컴파일 및 배포에 포함되지 않는다

-> C:\Users\Gi7E-36.m2\repository\org\springframework

 

https://mvnrepository.com/

 

프로젝트 > Maven → Update Project 하면 버전이 바뀐다

'백엔드개발 > Spring' 카테고리의 다른 글

MVC 디자인 패턴, 모델 속 요소들  (0) 2024.05.22
SPRING Framework  (0) 2024.03.23
의존성 주입  (0) 2024.03.14
스프링 프레임워크  (1) 2024.03.14
Spring - 설치 및 세팅  (1) 2024.03.14