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> 태그 안에 들어가는 세부 태그들은 아래의 링크에 들어가서 글을 읽으면 기능을 더 알 수 있다.
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>
'IT > 스프링(Spring)' 카테고리의 다른 글
[스프링/Spring] 스프링 배치(Spring Batch) org.springframework.data.transaction.ChainedTransactionManager 세팅하는 방법 (0) | 2022.03.28 |
---|---|
[스프링/Spring] 스프링 배치(Spring Batch) DB를 통한 플로우 (0) | 2022.03.27 |
[스프링/Spring] 스프링 배치(Spring Batch) 적용하는 예제 (0) | 2022.03.27 |
[스프링/Spring] 스프링(Spring) DataSource 정리 (0) | 2022.03.27 |
이클립스 1개의 Tomcat에서 여러 모듈 올리는 방법 (0) | 2022.03.08 |
org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. 에러 해결 방법 (0) | 2022.03.07 |
스프링 프레임워크(Spring Framework) web.xml이란? (0) | 2022.02.05 |
스프링 프레임워크(Spring Framework) context:component-scan 사용법 (0) | 2022.02.03 |
최근댓글