POM 파일은 project object model 의 약자이며 해당 파일은
항상 프로젝트의 root 디렉토리에 위치해야 한다.
그리고 이 파일은 프로젝트를 빌드하기 위한 여러 다양한 디테일한 정보를 포함하며
mvn 커맨드로 실행시 maven 은 이 POM 파일을 읽어 설정 정보를 찾으며 그리고 나서 goals 를 실행한다.
POM
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">
<groupId>com.blidkaga.group</groupId>
<artifactId>group-test</artifactId>
<version>1.0.0-SNAPSHOT</version>
....
</project>
|
위는 가장 기본이 되는 POM 파일의 구조로
groupId 는 보통 조직명을 의미하지만 실제로는 소스의 구조를 말하며 web 프로젝트의 경우
보통 reversed domain 형태로 표시한다.
artifactId 는 project, library, plugin 등의 이름을 지칭한다.
그리고 version 은 빌드 버전을 의미한다.
이렇게 입력을 해서 maven 이 파싱할 때는 gropuId:artifactId:version 와 같이 version 이 겹치더라도
groupId 나 artifactId 가 달라지므로 프로젝트의 각 데이터들을 분기하는 기준으로 사용한다.
properties
빌드시 사용할 데이터를 프로퍼티로 제공한다.
프로퍼티 값을 사용시는 ${java-version} 으로 불러 사용한다.
<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">
....
<properties>
<java-version>1.6</java-version>
....
</properties>
</project>
|
plugins
mvn 명령어가 실행되면 실제로는 plugin 이 실행되어 build, clean, package 등의 작업을 진행한다.
<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">
....
<build>
<plugins>
<plugin>
....
</plugin>
</plugins>
</build>
</project>
|
Dependencies
빌드가 실행되기 전에 필요한 jar 파일등의 dependency 를 기술한다.
해당 파일들은 빌드가 시작되기 전에 Maven 레포지토리에서 다운로드 된다.
<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">
....
<dependencies>
<dependency>
....
</dependency>
</dependencies>
</project>
|
'Build > Maven' 카테고리의 다른 글
07. Maven plugin (0) | 2020.01.23 |
---|---|
06. Maven phase (0) | 2020.01.23 |
04. Maven 기본 명령어 (0) | 2020.01.23 |
03. Maven 템플릿 (0) | 2020.01.23 |
02. Maven 설치 (0) | 2020.01.23 |