Maven
애플리케이션을 개발하기 위해 반복적으로 진행해왔던 작업들을 지원하기 위하여 등장한 도구
빌드(Build), 패키징, 문서화, 테스트와 테스트 리포팅, git, 의존성관리, svn 등과 같은 형상 관리 서버와 연동(SCMs), 배포 등의 작업을 손쉽게 할 수 있도록 돕는다
Maven을 사용한다는 것은 CoC에 대해서 알아나가는 것
- 편리한 의존성 라이브러리 관리
- Maven에 설정한 대로 모든 개발자가 일관된 방식으로 빌드를 수행
- 다양한 플러그인을 제공하여 많은 일들을 자동화 할 수 있다
Maven 기본
Maven 기반 프로젝트를 생성할 경우 생성된 프로젝트 하위에 pom.xml 파일이 생성, 아래는 pom.xml 예시
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>kr.or.connect</groupId> <artifactId>examples</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>mysample</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
pom.xml 파일 내 태그 의미
project : pom.xml 파일의 최상위 루트 엘리먼트(Root Element)
modelVersion : POM model의 버전
groupId : 프로젝트를 생성하는 조직의 고유 아이디를 결정, 일반적으로 도메인 이름을 거꾸로 적는다
artifactId : 해당 프로젝트에 의하여 생성되는 artifact의 고유 아이디를 결정, Maven을 이용하여 pom.xml을 빌드할 경우 다음과 같은 규칙으로 artifact가 생성된다
- artifactid-version.packaging. 해당 예의 경우 빌드할 경우 examples-1.0-SNAPSHOT.jar 파일이 생성된다
packaging : 해당 프로젝트를 어떤 형태로 packaging 할 것인지 결정, jar, war, ear 등이 있다
version : 프로젝트의 현재 버전, Maven의 버전 관리 기능은 라이브러리 관리가 편리하도록 돕는다
- 프로젝트가 개발 중일 때는 SNAPSHOT을 접미사로 사용
name : 프로젝트의 이름
url : 프로젝트 사이트가 있다면 사이트 URL을 등록하는 것이 가능
dependencies : Dependency Management 기능의 핵심, 해당 엘리먼트 안에 필요한 라이브러리를 지정할 수 있다
CoC(Convention over Configuration)
일종의 관습
- 예를 들자면 프로그램의 소스파일은 어떤 위치에 있어야 하고, 소스가 컴파일된 파일들은 어떤 위치에 있어야 하고 등을 미리 정해둔 것을 말한다
- 관습에 이미 익숙한 사용자는 쉽게 Maven을 사용할 수 있는데, 관습에 익숙하지 않은 사용자는 이러한 제약사항에 대해서 심한 거부감을 느낄 수 있다
출처) 부스트코스 풀스택 강의 https://www.boostcourse.org/web316/lecture/16723?isDesc=false
'Java' 카테고리의 다른 글
[Java Collections]ArrayDeque 알아보기 (0) | 2025.06.10 |
---|---|
JDBC 란? (0) | 2021.07.04 |
자바 환경변수 (0) | 2021.05.08 |