Skip to Content

Maven을 이용한 프로젝트 관리

Maven이 필요한 이유

프로젝트의 규모가 커지면서 사용해야 하는 라이브러리들이 다양해지고, 팀원들 간의 버전 동기화 문제가 발생한다.

프로젝트 관리의 주요 문제점

  1. 프로젝트 식별: 어떤 프로젝트인지 명확한 정보가 필요
  2. 라이브러리 관리: 필요한 라이브러리가 무엇인지 파악
  3. 버전 관리: 각 라이브러리의 정확한 버전 명시
  4. 의존성 해결: 라이브러리를 어디서 다운로드할지 결정

이러한 모든 문제를 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를 사용하면 다음과 같은 장점이 있다:

  1. 중앙 집중식 관리: 모든 버전 정보를 한 곳에서 관리
  2. 일관성 유지: 여러 의존성에서 동일한 버전 사용 보장
  3. 유지보수 용이: 버전 업데이트 시 한 곳만 수정하면 됨
  4. 가독성 향상: 의존성 선언부가 더 깔끔해짐
Last updated on