Maven

강성관·2025년 3월 12일

Framework

목록 보기
1/11

Maven이란?

  1. Maven은 Java 기반 프로젝트에서
    1) 빌드(Build),
    2) 의존성 관리(Dependency Management),
    3) 프로젝트 관리(Project Management)
    위 3가지를 효율적으로 수행하기 위한 빌드 자동화 도구입니다.
  2. 라이브러리 버전이 변경되거나 새로운 라이브러리를 추가할때마다 jar파일 추가했어야했다.
  3. 여러 프로젝트 진행하면서 사용하는 라이브러리의 종류와 버전 관리가 필요하다.
  4. pom.xml 문서를 생성하여 정보 작성
    1) Maven은 이 파일을 기준으로 프로젝트의 빌드, 의존성 관리, 플러그인 설정 등을 자동화합니다.

스프링과 직접적인 연관 없음! 따로 생각 해야합니다.

pom.xml의 기본 구조

  • groupId : 루트 패키지
  • artifactId : context-path(최상위 url)
  • version : 우리 프로젝트의 버전(ex. 게시판 ver1)
  • name : 프로젝트명
  • description : 프로젝트에 대한 설명
  • build : 프로젝트를 빌드할때 사용되는 정보
<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/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion> <!-- POM 버전 (고정값) -->

    <!-- 프로젝트 기본 정보 -->
    <groupId>com.example</groupId> <!-- 프로젝트의 그룹 ID (도메인 형태 권장) -->
    <artifactId>my-app</artifactId> <!-- 프로젝트의 이름 (JAR 파일명) -->
    <version>1.0.0</version> <!-- 프로젝트 버전 (버전 관리 필수) -->
    
    <!-- 빌드 관련 정보 -->
    <packaging>jar</packaging> <!-- JAR 또는 WAR 지정 (기본값: jar) -->
    
    <properties><!--form.xml에서 자주 사용하게 되는 변수들을 저장해두고 사용 가능함.-->
  	<org.springframework-version>5.3.18</org.springframework-version><!--dependencies 밑의 주석 주소의 쿼리스트링쪽에 있는 일부 발췌-->
  	<org.aspectj-version>1.6.10</org.aspectj-version>
  	<org.apache.logging.log4j-version>2.12.1</org.apache.logging.log4j-version>
  	<org.springframework.security-version>5.7.2</org.springframework.security-version>
  </properties>
    
    <!-- 의존성 관리 -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>3.0.0</version>
        </dependency>
        
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope> <!-- 런타임 시 필요 -->
        </dependency>
    </dependencies>

    <!-- 플러그인 설정 (빌드 자동화 도구) -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

Maven의 주요 특징

  1. 빌드 자동화
    컴파일, 테스트, 패키징, 배포 등의 작업을 자동화
  2. 의존성 관리
    필요한 라이브러리를 자동으로 다운로드하고 관리
  3. 일관된 프로젝트 구조
    프로젝트의 디렉토리 구조 및 설정이 표준화되어 유지보수 및 협업이 쉬움
  4. 멀티 프로젝트 관리
    여러 개의 모듈을 통합 관리할 수 있어 대규모 프로젝트에 유리
  5. 플러그인 기반 구조
    다양한 플러그인을 활용해 기능 확장이 가능

Maven의 기본 구조

/src
  /main
    /java         (Java 소스 코드)
    /resources     (리소스 파일)
  /test
    /java         (테스트 코드)
    /resources     (테스트 리소스 파일)
/target             (빌드된 산출물 위치)
/pom.xml            (핵심 설정 파일)

Maven의 장점

✔️ 빌드와 의존성 관리 자동화
✔️ 프로젝트 구조의 표준화
✔️ 여러 모듈 프로젝트 관리 용이
✔️ 다양한 플러그인과 확장성 지원

프로젝트 생성

  1. [File]-[New]-[Dynamic Web Project]를 선택
  2. [Configure]-[Convert to Maven Project] 선택
  3. Group Id와 Name 반드시 일치 시키기

✔️빌드 : 소스 코드를 실행 가능한 프로그램으로 변환하는 과정

profile
함께 공부해요!

0개의 댓글