개발환경

[개발환경] pom.xml / web.xml 차이점 - 개발자 배찌

개발자 배찌 2022. 7. 9. 12:00
728x90

pom.xml
- Maven의 빌드 정보를 담고 있는 파일
- Maven은 프로젝트 설정이 xml 태그로 기술 되어 있는 pom.xml이라는 빌드파일을 사용.
- 위치때문에 프로젝트 실행이 안되는 경우가 많으니 꼭 !! Source 폴더 바로 안에 넣기!

web.xml
- WAS(Apache Tomcat) 에서 사용할 Web Application 의 기본 설정
- 모든 Web Application은 반드시 하나의 web.xml파일을 가져야 하고 , 위치는 WEB-INF 폴더아래에 있다.
- web.xml파일의 설정들은 Web Application 시작시에 메모리에 로딩된다.
- 브라우저가 Java Servlet에 접근하기 위해 WAS(Tomcat)에 필요한 정보를 알려줘야 해당하는 Servlet을 호출할 수 있음. 이것을 정 하는 곳이 web.xml 이다.

Maven
- 자바 프로젝트를 관리하는 툴.
- 미리 작성된 xml파일을 이용하여 라이버리를 자동으로 다운로드하거나 프로젝트를 빌드해준다.
- 즉, 자바 소스를 컴파일하고 패키지해서 deploy 까지 자동화 해주는 도구

pom.xml의 기본정보

<!-- Maven 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">

<!-- Maven 의 modelVersion -->
<modelVersion>4.0.0</modelVersion>

<!-- 프로젝트를 만들 때 입력. 제작자, 회사, 단체, 개발자 등을 식별하기 위한 것 -->
<groupId>jiyoung</groupId>

<!-- 프로젝트에 할당한 고유 ID -->
<artifactId>source</artifactId>

<!-- Web Application 의 경우 war로 지정-->
<packaging>war</packaging>
<version>1.0.0</version>

<!-- 프로그램의 이름. artifactid를 그대로 지정 하는 경우가 많음-->
<name>jiyoung</name>

<!-- 프로젝트와 관련된 Web 사이트 주소 -->
<url>http://www.egovframe.go.kr</url>

<!-- 프로젝트 관련 속성 -->
<properties>
<spring.maven.artifact.version>4.0.9.RELEASE</spring.maven.artifact.version> <egovframework.rte.version>3.5.0</egovframework.rte.version>
</properties>

<repositories>
<repository>
<id>mvn2s</id>
<url>https://repo1.maven.org/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>

<repository>
<id>egovframe</id>
<url>http://maven.egovframe.kr:8080/maven/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>

<repository>
<id>egovframe2</id>
<url>http://www.egovframe.go.kr/maven/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>

<!-- dependencies : 프로젝트가 의존하는 라이브러리들의 정보 -->
<!-- groupId : 라이브러리 그룹 아이디 -->
<!-- version : 라이브러리 버전 -->
<!-- scope : 라이브러리 프로젝트 내에서 사용되는 범위 -->
<dependencies>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.ptl.mvc</artifactId>
<version>${egovframework.rte.version}</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>

<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.psl.dataaccess</artifactId>
<version>${egovframework.rte.version}</version>
</dependency>

<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.idgnr</artifactId>
<version>${egovframework.rte.version}</version>
</dependency>

<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.property</artifactId>
<version>${egovframework.rte.version}</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<scope>provided</scope>
<version>2.5</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.0</version> </dependency>
<dependency> <groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
........
......