반응형

pom.xml은 Maven 구조에서 Maven의 설정을 할 수 있는 곳이면서, 다양한 라이브러리와 프레임워크를 사용할 수 있도록 Maven이 관리를 한다. 그래서, pom.xml은 이 Maven을 빌드할 수 있도록 설정하는 빌드 정보가 있는 파일이라고 할 수 있다.

 

1. <project></project> 태그

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
</project>

 

1) xmlns

xmlns는 pom.xml에서 네임스페이스로 사용된다.

 

2) xmlns:xsi

xmlns:xsi는 http://www.w3.org/2001/XMLSchema-instance 이것을 접두어로 사용한다.

 

3) xsi:schemaLocation

xsi:schemaLocation는 http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd 이 URL 2개가 공백으로 구분이 되어 있는데, 첫 번째에 있는 URL은 xmlns의 URL인 네임스페이스를 뜻하고, 두 번째에 있는 URL은 참조할 스키마 파일명을 의미한다.

 

2. <modelVersion></modelVersion> 태그

<modelVersion> 태그는 Maven의 모델 버전을 의미한다. 즉, pom.xml의 버전이라고 생각하면 된다.

<modelVersion>4.0.0</modelVersion>

 

3. <groupId></groupId> 태그

<groupId> 태그는 회사나 팀 등을 식별할 수 있도록 하는 ID를 지정하는 곳이다. 예를 들어, 대학교에서 학교명이나 학과 명을 의미한다.

<groupId>A</groupId>

 

4. <artifactId></artifactId> 태그

<artifactId> 태그는 이 프로젝트의 고유 ID를 의미한다. 대학교에서의 학번을 의미한다.

<artifactId>P1</artifactId>

 

5. <version></version> 태그

프로그램의 버전을 의미한다. 기본적으로, 1.0.0 SNAPSHOT으로 설정되어 있다.

<version>1.0.0</version>

 

6. <packaging></packaging> 태그

패키지 종류를 설정하는 곳이다. 대체적으로 zip이나 jar, war로 설정한다.

<packaging>war</packaging>

 

7. <name></name> 태그

프로젝트의 이름을 설정하는 곳이다. 이미 위에서, <artifactId> 태그를 사용하니 같이 사용해도 무방하다.

<name>P1</name>

 

8. <dependencies></dependencies> 태그

<dependencies> 태그안에 여러 개의 <dependency>를 정의하는데, 이 <dependency>를 묶어주는 태그라고 할 수 있다.

<dependencies>
	<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-resources-plugin -->
	<dependency>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-resources-plugin</artifactId>
		<version>2.7</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-dbcp2</artifactId>
		<version>2.7.0</version>
	</dependency>
</dependencies>

 

9. <dependency></dependency> 태그

이 <dependency> 태그는 라이브러리를 설정하여 등록하는 태그다. 이 태그 안에서도 groupId와 artifactId가 적혀 있는데, pom.xml에서 설명한 것과 동일하다. 이렇게 라이브러리를 <dependency> 태그를 통해 등록하여 Maven이 관리를 해준다.

<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-resources-plugin -->
<dependency>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-resources-plugin</artifactId>
	<version>2.7</version>
</dependency>

 

이 <dependency> 태그 안에 들어가는 세부 태그들은 아래의 링크에 들어가서 글을 읽으면 기능을 더 알 수 있다.

https://yongku.tistory.com/entry/pomxml-webapplib-%EC%9D%B8%EC%8B%9D-%EC%95%88%EB%90%A0-%EB%95%8C-%ED%95%B4%EA%B2%B0%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

pom.xml webapp.lib 인식 안될 때 해결하는 방법

pom.xml webapp.lib 인식 안될 때 해결하는 방법은 [프로젝트오른쪽 클리] - [Maven] - [Update Project]를 할 때, Offline으로 업데이트를 하면 된다. 항상 느끼지만 메이븐 라이브러리 에러가 제일 짜증난다.

yongku.tistory.com

 

10. <profiles></profiles> 태그

<profiles> 태그는 각 <profile> 태그를 묶어주는 태그다.

<profiles>
	<profile>
		<id>A</id>
		<properties>
			<resName>A</resName>
		</properties>
		
        <repositories>
			<repository>
				<id>project-repository</id>
				<name>Project Local Repository</name>
				<!-- change to server path -->
				<url>file:///AppData/repositoryLocal/maven/</url>
			</repository>
		</repositories>
	</profile>
</profiles>

 

11. <profile></profile> 태그

<profile> 태그는 프로젝트를 로컬 / 개발 / 운영에 따라서 따로 pom.xml의 url을 설정할 수 있도록 해주는 곳이다.

<profile>
		<id>A</id>
		<properties>
			<resName>A</resName>
		</properties>
		
        <repositories>
			<repository>
				<id>project-repository</id>
				<name>Project Local Repository</name>
				<!-- change to server path -->
				<url>file:///AppData/repositoryLocal/maven/</url>
			</repository>
		</repositories>
</profile>
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기