ljy.log
로그인
ljy.log
로그인
Maven
이지윤
·
2022년 4월 3일
팔로우
0
Spring
maven
0
프레임워크프로그래밍
목록 보기
3/24
Maven 소개
Maven 정의
프로젝트 관리 도구
빌드 자동화 기능
과
프로젝트 관리 기능
을 제공
프로젝트(라이브러리) 관리
pom.xml 파일을 이용하여 프로젝트 관련된 jar 파일을 다운로드하고 관리
프로젝트 산출물을 일관된 구조로 관리
빌드 자동화
빌드 작업들을 간단하고 쉽게 그리고 일관성 있게 수행할 수 있는 통합 환경을 제공
빌드는 소스 코드 파일을 실행 코드로 변환하여 배포하는 과정
프로젝트 관리 기능
프로젝트 관리 기능
일반 개발자 프로젝트 관리 설정 메이븐이 미리 정의한 설정들로 대체
정형화된 프로젝트 디렉토리 구조 관리 (pom.xml)
의존성 관리 기능 : 편리한 라이브러리 관리 기능(pom.xml, Repository)
프로젝트 빌드에 필요한 라이브러리, 프러그인을 자동으로 다운로드
중앙 저장소
http://mvnrepository.com
http://search.maven.org\
로컬 저장소
빌드 프로세스를 관리(pom.xml) : 플러그인 설정을 통해 빌드 자동화
프로젝트 디렉토리 기본 설정 (pom.xml)
src/main/resources 클래스 패스로 사용되는 디렉토리
주요 설정 정보
소스 코드 (source code) → ${basedir}/src/main/java
설정 파일 경로 (resources) → ${basedir}/src/main/resources
테스트 (Tests) → ${basedir}/src/main/test
distributable JAR → ${basedir}/target
컴파일된 바이트 코드 → ${basedir}/target/classes
웹 디렉토리 구성
자바 소스와 리소스 디렉토리는 메이븐 기본 디렉토리를 유지하고 웹 자원을 관리하는 별도의 src/main/webapp 디렉토리를 사용
기본 디렉토리 구성
의존 관계(라이브러리) 설정 (pom.xml)
프로젝트 당 한 개의 pom.xml 파일 관리
최상위 엘리먼트 : project
3개의 필수 필드를 가짐 (groupId, artifactId, version)
groupId : 프로젝트 조직 고유 도메인 ex) org.tukorea
artifactId : 프로젝트 명 ex) myhomework
version : 프로젝트 버전
프로젝트 의존관계의 라이브러리 관리 : dependency
프로젝트 빌드 설정
프로젝트 기본 정보
저장소
프로퍼티
디렉토리 구조
플러그인 (plugins)
골(goals)
Maven Repository
메이븐 저장소는 프로젝트에 사용되는 프로젝트 jar 파일, 라이브러리 jar파일들이 위치
3가지 타입이 존재
지역 저장소
: 메이븐을 빌드할 때 다운로드하는 라이브러리 플러그인을 관리하는 저장소
중앙 저장소
: 오픈 소스 라이브러리, 메이븐 플러그인 메이븐 아키타입을 관리하는 저장소
원격 저장소
:별도의 메이븐 저장소를 설치해 중앙 저장소에 존재하지 않는 라이브러리 관리
의존 라이브러리 적용 스코프
의존 라이브러리를 적용할 수 있는 시점을 제한
Scope 설정
compile : 스코프 설정하지 않을 때의 기본 스코프
provided : 컴파일 시 직접 의존성을 참조, 런타임 시 다른 환경에서 의존성 제공 (해당 컨테이너의 서블릿 API)
runtime : 컴파일 시 사용하지 않고, 애플리케이션 실행 시 사용되는 라이브러리 경우만 설정
test : 테스트하는 시점에만 사용하는 라이브러리의 스코프를 설정할 때 사용 (JUnit)
system : provided와 비슷하지만, 직접 jar 파일을 제공해야 함
import : 다른 POM설정 파일에 정의된 의존 관계 설정을 현재 프로젝트로 가져옴
빌드 자동화 기능
메이븐은 소프트웨어 빌드를 위한 공통 인터페이스를 제공하는 프레임워크
플로그인 설정을 통해 기능을 위임
빌드 라이프 사이클
빌드 단계 (컴파일, 테스트, 페이징, 배포)
기본 라이프 사이클
여러 단계의 페이즈(Phase)로 나뉜다
각 페이즈는 의존관계를 가진다
compile, test, package deploy 순으로 진행
기본 페이즈
리소스 준비
컴파일
테스트
패키지
설치 (install)
배포 (deploy)
clean 라이프 사이클
clean 페이징 -> 이전 빌드에서 생성된 모든 파일들을 삭제
site 라이프 사이클
site, site-deploy 페이즈 -> 생성된 문서들을 대상 사이트로 배포
Goal
각 빌드 단계에서 수행되는 작업
빌드 라이프 사이클 -> 하나 이상의 골을 수행하는 페이즈들로 구성
각 페이즈 별로 플러그인 작업을 수행 -> Goal
플러그인
실제 골을 수행
대부분의 기능들은 플러그인을 통해 제공
플러그인 종류
clean
compiler
surefire
jar
war
javadoc
antrun
이지윤
초보자
팔로우
이전 포스트
웹 애플리케이션 아키텍처 (2)
다음 포스트
DI
0개의 댓글
댓글 작성