360 lines
12 KiB
XML
360 lines
12 KiB
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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-parent</artifactId>
|
|
<version>3.2.5</version> <!-- 안정적인 버전으로 변경 -->
|
|
<relativePath/>
|
|
</parent>
|
|
|
|
<groupId>gc.mda</groupId>
|
|
<artifactId>signal_batch</artifactId>
|
|
<version>1.0.0</version>
|
|
<packaging>jar</packaging>
|
|
|
|
<name>signal_batch</name>
|
|
<description>Vessel Signal Batch Aggregation System</description>
|
|
|
|
<properties>
|
|
<java.version>17</java.version>
|
|
<maven.compiler.source>17</maven.compiler.source>
|
|
<maven.compiler.target>17</maven.compiler.target>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
|
|
<!-- 데이터베이스 관련 -->
|
|
<postgresql.version>42.5.6</postgresql.version>
|
|
<postgis-jdbc.version>2023.1.0</postgis-jdbc.version>
|
|
<hikaricp.version>5.1.0</hikaricp.version>
|
|
|
|
<!-- Spring Batch -->
|
|
<spring-batch.version>5.1.1</spring-batch.version>
|
|
|
|
<!-- 유틸리티 -->
|
|
<guava.version>33.2.0-jre</guava.version>
|
|
<commons-lang3.version>3.14.0</commons-lang3.version>
|
|
<jackson.version>2.17.0</jackson.version>
|
|
|
|
<!-- 모니터링 -->
|
|
<micrometer.version>1.12.5</micrometer.version>
|
|
|
|
<!-- 테스트 -->
|
|
<testcontainers.version>1.19.8</testcontainers.version>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<!-- Spring Boot Starters -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-batch</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-jdbc</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-web</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-actuator</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-validation</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-aop</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-cache</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-configuration-processor</artifactId>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- WebSocket -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-websocket</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Database -->
|
|
<dependency>
|
|
<groupId>org.postgresql</groupId>
|
|
<artifactId>postgresql</artifactId>
|
|
<version>${postgresql.version}</version>
|
|
</dependency>
|
|
|
|
<!-- PostGIS JDBC Extras (geometry 타입 처리용) -->
|
|
<dependency>
|
|
<groupId>net.postgis</groupId>
|
|
<artifactId>postgis-jdbc</artifactId>
|
|
<version>${postgis-jdbc.version}</version>
|
|
<scope>runtime</scope>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>org.postgresql</groupId>
|
|
<artifactId>postgresql</artifactId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<groupId>org.postgis</groupId>
|
|
<artifactId>postgis-geometry</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
|
|
<!-- Connection Pool -->
|
|
<dependency>
|
|
<groupId>com.zaxxer</groupId>
|
|
<artifactId>HikariCP</artifactId>
|
|
<version>${hikaricp.version}</version>
|
|
</dependency>
|
|
|
|
<!-- Spring Batch Extensions -->
|
|
<dependency>
|
|
<groupId>org.springframework.batch</groupId>
|
|
<artifactId>spring-batch-integration</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Spring Retry -->
|
|
<dependency>
|
|
<groupId>org.springframework.retry</groupId>
|
|
<artifactId>spring-retry</artifactId>
|
|
</dependency>
|
|
|
|
<!-- AspectJ -->
|
|
<dependency>
|
|
<groupId>org.aspectj</groupId>
|
|
<artifactId>aspectjweaver</artifactId>
|
|
<version>1.9.21</version>
|
|
</dependency>
|
|
|
|
<!-- Monitoring -->
|
|
<dependency>
|
|
<groupId>io.micrometer</groupId>
|
|
<artifactId>micrometer-registry-prometheus</artifactId>
|
|
<version>${micrometer.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>io.micrometer</groupId>
|
|
<artifactId>micrometer-tracing-bridge-brave</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Utilities -->
|
|
<dependency>
|
|
<groupId>org.projectlombok</groupId>
|
|
<artifactId>lombok</artifactId>
|
|
<version>1.18.32</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-lang3</artifactId>
|
|
<version>${commons-lang3.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.google.guava</groupId>
|
|
<artifactId>guava</artifactId>
|
|
<version>${guava.version}</version>
|
|
</dependency>
|
|
|
|
<!-- JSON Processing -->
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
|
<artifactId>jackson-datatype-jsr310</artifactId>
|
|
<version>${jackson.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.module</groupId>
|
|
<artifactId>jackson-module-parameter-names</artifactId>
|
|
<version>${jackson.version}</version>
|
|
</dependency>
|
|
|
|
<!-- Spatial Libraries -->
|
|
<dependency>
|
|
<groupId>org.locationtech.jts</groupId>
|
|
<artifactId>jts-core</artifactId>
|
|
<version>1.19.0</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.locationtech.jts.io</groupId>
|
|
<artifactId>jts-io-common</artifactId>
|
|
<version>1.19.0</version>
|
|
</dependency>
|
|
|
|
<!-- Jakarta Validation -->
|
|
<dependency>
|
|
<groupId>jakarta.validation</groupId>
|
|
<artifactId>jakarta.validation-api</artifactId>
|
|
<version>3.0.2</version>
|
|
</dependency>
|
|
|
|
<!-- Caffeine Cache -->
|
|
<dependency>
|
|
<groupId>com.github.ben-manes.caffeine</groupId>
|
|
<artifactId>caffeine</artifactId>
|
|
<version>3.1.8</version>
|
|
</dependency>
|
|
|
|
<!-- Test Dependencies -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.batch</groupId>
|
|
<artifactId>spring-batch-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<!-- H2 Database for Testing -->
|
|
<dependency>
|
|
<groupId>com.h2database</groupId>
|
|
<artifactId>h2</artifactId>
|
|
<version>2.2.224</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<!-- JUnit 5 -->
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<!-- Testcontainers -->
|
|
<dependency>
|
|
<groupId>org.testcontainers</groupId>
|
|
<artifactId>testcontainers</artifactId>
|
|
<version>${testcontainers.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.testcontainers</groupId>
|
|
<artifactId>postgresql</artifactId>
|
|
<version>${testcontainers.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>jakarta.annotation</groupId>
|
|
<artifactId>jakarta.annotation-api</artifactId>
|
|
<version>2.1.1</version>
|
|
</dependency>
|
|
|
|
<!-- Swagger/OpenAPI 3 -->
|
|
<dependency>
|
|
<groupId>org.springdoc</groupId>
|
|
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
|
|
<version>2.3.0</version>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<finalName>vessel-batch-aggregation</finalName>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
<configuration>
|
|
<excludes>
|
|
<exclude>
|
|
<groupId>org.projectlombok</groupId>
|
|
<artifactId>lombok</artifactId>
|
|
</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>repackage</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>3.13.0</version>
|
|
<configuration>
|
|
<source>17</source>
|
|
<target>17</target>
|
|
<annotationProcessorPaths>
|
|
<path>
|
|
<groupId>org.projectlombok</groupId>
|
|
<artifactId>lombok</artifactId>
|
|
<version>1.18.32</version>
|
|
</path>
|
|
<path>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-configuration-processor</artifactId>
|
|
<version>3.2.5</version>
|
|
</path>
|
|
</annotationProcessorPaths>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>3.2.5</version>
|
|
<configuration>
|
|
<argLine>-Xmx2048m -Xms1024m</argLine>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<repositories>
|
|
<repository>
|
|
<id>central</id>
|
|
<url>https://repo.maven.apache.org/maven2</url>
|
|
</repository>
|
|
<repository>
|
|
<id>spring-milestones</id>
|
|
<url>https://repo.spring.io/milestone</url>
|
|
</repository>
|
|
</repositories>
|
|
|
|
<pluginRepositories>
|
|
<pluginRepository>
|
|
<id>spring-milestones</id>
|
|
<url>https://repo.spring.io/milestone</url>
|
|
</pluginRepository>
|
|
</pluginRepositories>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>skip-tests</id>
|
|
<properties>
|
|
<maven.test.skip>true</maven.test.skip>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
|
|
</project> |