본문 바로가기

개발/Spring

메이븐(Maven) 구성요소

728x90
반응형
메이븐

 

메이븐은 프로젝트 구조와 내용을 기술하는 선언적 접근 방식의 오픈 소스 빌드 툴입니다.
메이븐을 사용하면 프로젝트 종속 라이브러리들과 그 라이브러리에 의존하는 Dependency 자원까지 관리할 수 있습니다.
메이븐은 프로젝트 전반의 리소스 관리와 설정 파일 그리고 이와 관련된 표준 디렉터리 구조를 처음부터 일관된 형태로 구성하여 관리합니다.

메이븐을 사용하면 컴파일과 동시에 빌드를 수행할 수 있을 뿐만 아니라 관련된 라이브러리도 일관성 있게 관리할 수 있어 편리합니다.

 

[ 메이븐 웹 프로젝트 기본 디렉터리 구조 ]

 

 

 

[ 메이븐 프로젝트 구성요소 ]

 

구성요소 설명
src/main/java 자바 소스 파일이 위치합니다.
src/main/resources 프로퍼티 파일이나 XML 설정파일 등 리소스 파일이 위치합니다.(database, log4j properties 등)
src/main/webapp WEB-INF, static(image, css, js 등) 등 웹 애플리케이션 리소스가 위치합니다.
src/test/java JUnit 등 자바 테스트 파일이 위치합니다.
src/test/resources 테스트 시에 필요한 resource 파일이 위치합니다.
target 빌드 결과 파일을 출력합니다.
pom.xml 프로젝트 정보가 표시되며 스프링에서 사용되는 여러가지 라이브러리를 설정해 자동으로 다운로드 할 수 있습니다.

 

 

[ pom.xml ]

 

<?xml version="1.0" encoding="UTF-8"?>
<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>com.myspring</groupId>
	<artifactId>myproject</artifactId>
	<name>myproject</name>
	<packaging>war</packaging>
	<version>1.0.0-BUILD-SNAPSHOT</version>
	<properties>
		<java-version>1.6</java-version>
		<org.springframework-version>3.1.1.RELEASE</org.springframework-version>
		<org.aspectj-version>1.6.10</org.aspectj-version>
		<org.slf4j-version>1.6.6</org.slf4j-version>
	</properties>

	<dependencies>
		<!-- Spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${org.springframework-version}</version>
			<exclusions>
				<!-- Exclude Commons Logging in favor of SLF4j -->
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${org.springframework-version}</version>
		</dependency>
...
</project>

 

<dependencies> 태그를 이용해 프로젝트가 의존하는 여러가지 라이브러리를 설정합니다.

 

 

[ pom.xml 의 프로젝트 설정 정보 태그 구성 요소 ]

 

속성 설명
groupId 프로젝트 그룹 id 를 나타내며 일반적으로 도메인 이름을 사용해 설정합니다.
artifactId 프로젝트 아티팩트 id 를 설정합니다. 대부분 패키지 이름으로 설정합니다.
version 프로젝트의 버전을 설정합니다.
packaging 애플리케이션 배포 시 패키징 타입을 설정합니다. (war 파일로 패키징)

 

 

[ pom.xml 의 dependencies 정보 설정 태그 구성 요소 ]

 

속성 설명
dependency 프로젝트에서 의존하는 다른 라이브러리 정보를 기술합니다.
groupId 의존하는 프로젝트의 그룹 id
artifactId 의존하는 프로젝트의 artifact id
version 의존하는 프로젝트 버전 정보

 

 

여기까지 임미다.

 

 

 

728x90