2. 创建机场区域PostGIS实体类(AirportArea) 3. 创建数据库迁移脚本(表结构、索引、分区) 4. 实现车辆位置Repository接口 5. 实现机场区域Repository接口 6. 创建PostGIS车辆服务(PostGISVehicleService) 7. 创建PostGIS区域服务(PostGISAreaService) 8. 创建统一空间查询服务(SpatialQueryService) 9. 实现区域配置导入工具(YAML到数据库) 10. 重构DataCollectorService(移除内存存储) 11. 重构AirportAreaService(基于数据库查询) 12. 移除MovingObjectRepository和相关内存存储代码 13. 移除AirportAreasProperties和YAML配置加载 14. 实现Redis缓存策略 15. 数据库连接池和性能优化配置 16. 创建单元测试和集成测试
216 lines
7.9 KiB
XML
216 lines
7.9 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.4.3</version>
|
||
<relativePath/> <!-- lookup parent from repository -->
|
||
</parent>
|
||
<groupId>com.dongni</groupId>
|
||
<artifactId>CollisionAvoidance</artifactId>
|
||
<version>0.0.1-SNAPSHOT</version>
|
||
<name>CollisionAvoidance</name>
|
||
<description>CollisionAvoidance</description>
|
||
<url/>
|
||
<licenses>
|
||
<license/>
|
||
</licenses>
|
||
<developers>
|
||
<developer/>
|
||
</developers>
|
||
<scm>
|
||
<connection/>
|
||
<developerConnection/>
|
||
<tag/>
|
||
<url/>
|
||
</scm>
|
||
<properties>
|
||
<java.version>17</java.version>
|
||
<!-- 使用经过验证的稳定版本 -->
|
||
<geotools.version>30.0</geotools.version>
|
||
</properties>
|
||
<repositories>
|
||
<repository>
|
||
<id>osgeo</id>
|
||
<name>OSGeo Release Repository</name>
|
||
<url>https://repo.osgeo.org/repository/release/</url>
|
||
<snapshots><enabled>false</enabled></snapshots>
|
||
<releases><enabled>true</enabled></releases>
|
||
</repository>
|
||
<repository>
|
||
<id>osgeo-snapshot</id>
|
||
<name>OSGeo Snapshot Repository</name>
|
||
<url>https://repo.osgeo.org/repository/snapshot/</url>
|
||
<snapshots><enabled>true</enabled></snapshots>
|
||
<releases><enabled>false</enabled></releases>
|
||
</repository>
|
||
|
||
</repositories>
|
||
|
||
|
||
|
||
<dependencies>
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-web</artifactId>
|
||
</dependency>
|
||
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-test</artifactId>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.projectlombok</groupId>
|
||
<artifactId>lombok</artifactId>
|
||
<version>1.18.38</version>
|
||
<optional>true</optional>
|
||
<scope>provided</scope>
|
||
</dependency>
|
||
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-validation</artifactId>
|
||
<version>3.0.12</version>
|
||
</dependency>
|
||
|
||
<!-- Spring Kafka -->
|
||
<dependency>
|
||
<groupId>org.springframework.kafka</groupId>
|
||
<artifactId>spring-kafka</artifactId>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||
</dependency>
|
||
|
||
<!-- Redis连接池 -->
|
||
<dependency>
|
||
<groupId>org.apache.commons</groupId>
|
||
<artifactId>commons-pool2</artifactId>
|
||
</dependency>
|
||
|
||
<!-- PostgreSQL + PostGIS依赖 -->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.postgresql</groupId>
|
||
<artifactId>postgresql</artifactId>
|
||
<version>42.7.1</version>
|
||
</dependency>
|
||
|
||
<!-- Hibernate Spatial for PostGIS support -->
|
||
<dependency>
|
||
<groupId>org.hibernate.orm</groupId>
|
||
<artifactId>hibernate-spatial</artifactId>
|
||
</dependency>
|
||
|
||
<!-- PostGIS JDBC Extension -->
|
||
<dependency>
|
||
<groupId>net.postgis</groupId>
|
||
<artifactId>postgis-jdbc</artifactId>
|
||
<version>2023.1.0</version>
|
||
</dependency>
|
||
|
||
<!-- Jackson依赖(用于Redis序列化) -->
|
||
<dependency>
|
||
<groupId>com.fasterxml.jackson.core</groupId>
|
||
<artifactId>jackson-databind</artifactId>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||
<artifactId>jackson-datatype-jsr310</artifactId>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||
</dependency>
|
||
|
||
<!-- GeoTools坐标转化框架 -->
|
||
<!-- 核心三件套 -->
|
||
<dependency>
|
||
<groupId>org.geotools</groupId>
|
||
<artifactId>gt-main</artifactId>
|
||
<version>${geotools.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.geotools</groupId>
|
||
<artifactId>gt-referencing</artifactId>
|
||
<version>${geotools.version}</version>
|
||
</dependency>
|
||
|
||
<dependency>
|
||
<groupId>org.geotools</groupId>
|
||
<artifactId>gt-epsg-hsql</artifactId>
|
||
<version>${geotools.version}</version>
|
||
</dependency>
|
||
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-websocket</artifactId>
|
||
</dependency>
|
||
|
||
<!-- Java Topology Suite (JTS) for spatial operations -->
|
||
<dependency>
|
||
<groupId>org.locationtech.jts</groupId>
|
||
<artifactId>jts-core</artifactId>
|
||
<version>1.19.0</version> <!-- Or check for the latest stable version -->
|
||
</dependency>
|
||
|
||
</dependencies>
|
||
|
||
<build>
|
||
<plugins>
|
||
<plugin>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-compiler-plugin</artifactId>
|
||
<configuration>
|
||
<source>${java.version}</source>
|
||
<target>${java.version}</target>
|
||
<annotationProcessorPaths>
|
||
<path>
|
||
<groupId>org.projectlombok</groupId>
|
||
<artifactId>lombok</artifactId>
|
||
<version>1.18.38</version>
|
||
</path>
|
||
</annotationProcessorPaths>
|
||
</configuration>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-surefire-plugin</artifactId>
|
||
<configuration>
|
||
<!-- 设置超时时间为60秒 -->
|
||
<forkedProcessTimeoutInSeconds>60</forkedProcessTimeoutInSeconds>
|
||
<!-- 强制关闭非正常终止的JVM进程 -->
|
||
<shutdown>kill</shutdown>
|
||
<!-- 在两个失败后停止执行剩余测试 -->
|
||
<skipAfterFailureCount>2</skipAfterFailureCount>
|
||
<!-- 禁用系统类加载器 -->
|
||
<useSystemClassLoader>false</useSystemClassLoader>
|
||
<forkCount>1</forkCount>
|
||
<reuseForks>false</reuseForks>
|
||
<!-- 强制退出测试进程 -->
|
||
<forkedProcessExitTimeoutInSeconds>5</forkedProcessExitTimeoutInSeconds>
|
||
<systemPropertyVariables>
|
||
<!-- 禁用外部服务连接,防止测试时连接超时 -->
|
||
<spring.data.mongodb.auto-index-creation>false</spring.data.mongodb.auto-index-creation>
|
||
<spring.autoconfigure.exclude>org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration</spring.autoconfigure.exclude>
|
||
<!-- 测试模式标记 -->
|
||
<spring.profiles.active>test</spring.profiles.active>
|
||
</systemPropertyVariables>
|
||
</configuration>
|
||
</plugin>
|
||
</plugins>
|
||
</build>
|
||
|
||
</project>
|