Maven을 이용한 프로젝트 관리
Maven이 필요한 이유
프로젝트의 규모가 커지면서 사용해야 하는 라이브러리들이 다양해지고, 팀원들 간의 버전 동기화 문제가 발생한다.
프로젝트 관리의 주요 문제점
- 프로젝트 식별: 어떤 프로젝트인지 명확한 정보가 필요
- 라이브러리 관리: 필요한 라이브러리가 무엇인지 파악
- 버전 관리: 각 라이브러리의 정확한 버전 명시
- 의존성 해결: 라이브러리를 어디서 다운로드할지 결정
이러한 모든 문제를 pom.xml 파일 하나로 해결할 수 있다.
Maven이란?
Maven은 Java 기반의 프로젝트 관리 도구로, 주로 빌드 자동화와 의존성 관리에 사용된다.
Maven의 주요 기능
- 프로젝트 구조 표준화: 일관된 디렉토리 구조 제공
- 의존성 관리: 필요한 라이브러리를 자동으로 다운로드하고 관리
- 빌드 자동화: 컴파일, 테스트, 패키징 등의 작업을 자동화
라이브러리 검색
Maven Repository 에서 필요한 라이브러리를 검색할 수 있다
의존성 추가 예시
기본 의존성 설정
<dependencies>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>4.0.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
Properties를 활용한 버전 관리
Maven 기반 프로젝트를 생성할 때, <properties> 태그를 사용하면 버전 정보를 중앙에서 관리할 수 있다. 특히 버전 정보를 property로 선언하면 재사용성이 강화되고 유지보수가 쉬워진다.
Properties 정의
<properties>
<jdk.version>17</jdk.version>
<maven.compiler.source>${jdk.version}</maven.compiler.source>
<jakarta.servlet.version>6.0.0</jakarta.servlet.version>
<jakarta.servlet.jsp-api.version>4.0.0</jakarta.servlet.jsp-api.version>
</properties>Properties를 활용한 의존성 설정
<dependencies>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>${jakarta.servlet.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>장점
Properties를 사용하면 다음과 같은 장점이 있다:
- 중앙 집중식 관리: 모든 버전 정보를 한 곳에서 관리
- 일관성 유지: 여러 의존성에서 동일한 버전 사용 보장
- 유지보수 용이: 버전 업데이트 시 한 곳만 수정하면 됨
- 가독성 향상: 의존성 선언부가 더 깔끔해짐
Last updated on