Maven이란?

Minkyeong Kim·2021년 10월 23일
0

[boostcourse] Web-Backend

목록 보기
15/55

Maven

  • 애플리케이션을 개발하기 위해 반복적으로 진행해왔던 작업들을 지원하기 위하여 등장한 도구
  • 빌드(Build), 패키징, 문서화, 테스트와 테스트 리포팅, git, 의존성관리, svn등과 같은 형상관리서버와 연동(SCMs), 배포 등의 작업 손쉽게 가능
  • CoC(Convention over Configuration)
    프로그램의 소스파일은 어떤 위치에 있어야 하고, 소스가 컴파일된 파일들은 어떤 위치에 있어야 하고 등을 미리 정해놨다는 것

Maven의 이점

  • 편리한 의존성 라이브러리 관리
  • Maven에 설정한 대로 모든 개발자가 일관된 방식으로 빌드 수행 가능
  • 다양한 플러그인을 제공 -> 자동화된 시스템 구축 가능
  • Dependency Management -> element 내에 필요한 라이브러리를 지정 가능

pom.xml

  • Archetype을 이용하여 Maven 기반 프로젝트를 생성할 경우 생성된 프로젝트 하위에 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>

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 : 프로젝트의 현재 버전, 프로젝트가 개발 중일 때는 SNAPSHOT을 접미사로 사용. Maven의 버전 관리 기능 -> 편리하게 라이브러리 관리할 수 있음
name : 프로젝트의 이름
url : 프로젝트 사이트 URL 등록 가능

이클립스에서 Maven Project를 생성해 보자

1. File - New - Maven Project 누른 후 다음과 같이 입력하여 프로젝트 생성


2. pom.xml 파일 수정

  • JDK 1.8버전 사용하기 위해 맨 아래 plugin 추가
  • 벤더에서 제공하는 JDBC 드라이버 depencency 추가
<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>

	<groupId>kr.or.connect</groupId>
	<artifactId>jdbcexam</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>jdbcexam</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.45</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.6.1</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

3. 프로젝트 우클릭 - Maven - Update Project 수행

0개의 댓글