스프링 프레임워크 (2)(Maven)

넙데데맨·2022년 3월 31일
0
post-thumbnail

Maven?

IDE와 별개로 사용되는 빌드 도구!!

IDE 프로젝트 관리와 관련되 쓰이는 도구가 많다

  • 형상관리를 위한 Git,Cvs 등등
  • 소스코드에서 어플리케이션 생성을 자동화 하기 위한 빌드도구 Maven, Gradle, Ant 등등
  • 단위 테스트를 위한 JUnit

빌드

  • 소스코드 파일을 컴퓨터에서 실행할 수 있게하는 과정 또는 결과물

빌드 도구

빌드 도구는 소스 코드를 실행 가능한 애플리케이션으로 자동 생성하는 프로그램으로 라이브러리를 자동 추가 관리 및 버전을 동기화 해주는 역할을 한다

Maven

  • 자바용 프로젝트 관리 도구 Ant의 대안으로 만들어졌다.
  • 프로젝트 전체적인 라이프 사이클을 관리하는 도구로 필요한 라이브러리를 pom.xml에 정의해 놓으면 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 자동 다운해준다.

Maven 자바 프로젝트 생성

실행 창에 cmd 사용 콘솔 프로그램 생성후
mvn archetype:generate -DgroupId=com.firstMaven -DartifactId=javaprj -DarchetypeArtifactId=maven-archetype-quickstart

mvn archetype:generate -D // 메이븐 프로젝트 생성하겠다는 뜻
groupId=com.firstMaven -D // 프로젝트 식별 그룹명
artifactId=javaprj -D // 내가 Javaprj 프로젝트 생성
archetypeArtifactId=maven-archetype-quickstart // maven-archetype-quickstart 라는 프로젝트 구조 기본

Maven Build LifeCycle Phases

Maven이 기본 제공하는 라이프사이클(LifeCycle)

단계별로 나누어준 뒤 해당 단계까지만 진행시켜준다
Phase:Plug-in:Goal 순서대로 나와 있다.
Phase : 빌드 라이프사이클에서 빌드 단계와 순서를 정의
Plug-in : 해당 단계를 실행시켜주는 프로그램
Goal : 내가 실행시킬 명령을 뜻하며 Plug-in은 여러개의 Goal로 이루어져 있다.

POM.xml에서 Phase를 해결하는 Plug-in을 설정해줄 수 있다.

POM.xml (Project Object Model)

Maven의 빌드 정보를 담은 파일
프로젝트의 빌드 옵션을 설정하는 역할을 한다

packaging 부분 jar -> war로 바꾼 후 web-Inf web.xml 추가시 웹 프로젝트로 간단하게 변경 가능하다.

라이브러리 설정

필요한 라이브러리가 버전이 달라질 때 해당 라이브러리를 일일히 추가해줘야하는 번거로움이 있다.

Maven 저장소

수많은 라이브러리, 프로젝트 모델을 쌓아놓고 있다.

POM.xml에 설정해서 사용 가능

로컬 Maven 저장소에 필요한 파일을 가져와서 사용하게 가능하며 프로젝트가 하나의 로컬 Maven 저장소를 사용해 개별적으로 라이브러리를 추가할 필요가 없게 해준다.

dependency 태그를 추가해 라이브러리 추가


Maven Dependencies에 추가한 라이브러리들이 처리되있다.

profile
차근차근

0개의 댓글