File name
Commit message
Commit date
<?xml version="1.0" encoding="UTF-8"?>
<!--
Maven 빌드 과정
0. Commend / Powershell / Terminal 창 켜기
1. pom.xml이 존재하는 프로젝트 경로로 이동
2. mvn clean (빌드를 하기전 빌드 결과 위치를 비우는 명령어)
3. mvn compile (Maven을 활용한 빌드 진행)
4. mvn package (Maven을 활용한 패키지 진행)
-->
<!--
작성자: 최정우
작성일: 220831
내용 : Maven Spring Legacy Proejct 세팅
-->
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion><!-- modelVersion: Maven POM의 버전 -->
<groupId>kr.co.takensoft</groupId><!-- groupId: 기관(소속) 식별자 -->
<artifactId>spring-legacy-project</artifactId><!-- artifactId: 현재 project의 식별자 -->
<name>project-name</name><!-- name: 현재 project의 명칭 -->
<packaging>war</packaging><!-- packaging: 어떤 파일 형식으로 패키징할 것인가를 정의, jar, war, exe 등이 올 수 있음 -->
<version>1.0.0-BUILD-SNAPSHOT</version><!-- version: 해당 artifact(컴포넌트)의 version, 뒤쪽 SNAPSHOT은 아직 개발 중임을 의미함 -->
<!-- properties: POM.xml에서 사용할 변수 -->
<properties>
<java-version>15</java-version>
<org.springframework.version>5.3.22</org.springframework.version>
<egovframework.rte.version>3.10.0</egovframework.rte.version>
<back-end-path>${project.basedir}/src/back-end</back-end-path>
<front-end-path>${project.basedir}/src/front-end</front-end-path>
</properties>
<!-- repositories: 라이브러리를 다운로드 받을 위치들을 설정 하는 곳 -->
<repositories>
<!-- repository: 라이브러리를 다운로드 받을 위치 설정, 기술되지 않을 시 기본적인 위치: https://repo1.maven.org/maven2/ -->
<!-- Apache재단 Maven 의존성 라이브러리 저장소 -->
<repository>
<id>mvn2s</id>
<url>https://repo1.maven.org/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<!-- 전자정부프레임워크 Maven 의존성 라이브러리 저장소 -->
<repository>
<id>egovframe</id>
<url>https://repo.maven.apache.org/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<!-- dependencies: 의존성 라이브러리들을 설정하는 곳 -->
<dependencies>
<!-- servlet 라이브러리 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!-- Spring Framwork 라이브러리 - 해당 라이브러리 다운로드 시 core, context, beans, expression, web, aop, jcl 이 같이 다운 받아짐 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<!-- Spring Framwork JDBC 라이브러리 - 특정 JDBC를 Bean 등록 해야 한다면 꼭 필요 함 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<!-- JSON Parsing 라이브러리 - 해당 라이브러리 다운로드 시 core, annotations 이 같이 다운 받아짐 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.3</version>
</dependency>
<!-- 시스템 입출력(파일 포함) -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
<!-- 파일업로드 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
<exclusions>
<exclusion>
<artifactId>commons-io</artifactId>
<groupId>commons-io</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- SQL 작성 및 DBCP, JDBC 인터페이스 기능 담당 라이브러리 Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
<!-- SQL 작성 및 DBCP, JDBC 인터페이스 기능 담당 라이브러리 Mybatis(SpringFramework와 인터페이스 용) - 해당 라이브러리 활용 시 의존성 라이브러리's mybatis, spring-context, spring-jdbc, spring-batch-infrastructure -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
</dependency>
<!-- DB Connection Pool : HikariCP -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.0.1</version>
</dependency>
<!-- JDBC : MariaDB -->
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>3.0.7</version>
</dependency>
<!-- JDBC : PostgreSQL -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.5.0</version>
</dependency>
<!-- POI - Excel 관련 라이브러리 (2007년 이후 버전) -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.2</version>
</dependency>
<!-- POI - Excel 관련 라이브러리 (2007년 이전 버전) -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.2</version>
</dependency>
<!-- File 바이너리 데이터의 MIME 관련 라이브러리 -->
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<!-- E-Mail 관련 라이브러리 -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<!-- 표준프레임워크 실행환경 (시작) -->
<!--<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.ptl.mvc</artifactId>
<version>${egovframework.rte.version}</version>
</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>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.crypto</artifactId>
<version>${egovframework.rte.version}</version>
</dependency>-->
<!--<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>-->
<!-- 표준프레임워크 실행환경 (끝) -->
</dependencies>
<!-- build: Compile ~ Depoly에 대한 과정을 설정하는 곳 -->
<build>
<!-- finalName: 최종 packaging된 file의 이름 -->
<finalName>ROOT</finalName>
<!-- directory: 빌드 경로 (다른 곳에서 ${deploy.path} 활용하면 됨) -->
<directory>${project.basedir}/target</directory>
<!-- sourceDirectory: Java 소스 경로 -->
<sourceDirectory>${back-end-path}/main/java</sourceDirectory>
<!-- testSourceDirectory: Test용 Java 소스 경로 -->
<testSourceDirectory>${back-end-path}/test/java</testSourceDirectory>
<!-- outputDirectory: 컴파일 후 .class 파일 저장 경로 -->
<outputDirectory>${build.directory}/classes</outputDirectory>
<!-- resources: JAVA File 이외의 자원들을 classpath로 설정하기 위한 곳 -->
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
<!-- plugins: Maven Plugin을 설정하는 곳 -->
<plugins>
<!-- maven compile plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>${java-version}</source><!-- 소스코드 Java 버전 -->
<target>${java-version}</target><!-- compile시 결과물 Java 버전 -->
</configuration>
</plugin>
<!-- maven war package plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<!-- webResources: web 관련 자원들의 (html, js, css 등..) 경로 -->
<webResources>
<resource>
<directory>${front-end-path}</directory>
</resource>
</webResources>
<!-- webappDirectory: package된 후 web관련 자원들이 배포될 경로 -->
<!-- <webappDirectory>${build.directory}</webappDirectory>-->
<!-- web.xml 경로 -->
<webXml>${project.basedir}/src/front-end/WEB-INF/web.xml</webXml>
</configuration>
</plugin>
</plugins>
</build>
</project>