362 lines
14 KiB
XML
362 lines
14 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||
<modelVersion>4.0.0</modelVersion>
|
||
|
||
<groupId>com.chinaweal.youfool</groupId>
|
||
<artifactId>youfool-devops-gd</artifactId>
|
||
<version>1.0.0-SNAPSHOT</version>
|
||
<packaging>war</packaging>
|
||
|
||
<name>youfool-devops-gd</name>
|
||
<url>https://www.chinaweal.com.cn</url>
|
||
<parent>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-parent</artifactId>
|
||
<version>3.4.5</version>
|
||
<relativePath/> <!-- lookup parent from repository -->
|
||
</parent>
|
||
<properties>
|
||
<java.version>21</java.version>
|
||
<maven.compiler.source>21</maven.compiler.source>
|
||
<maven.compiler.target>21</maven.compiler.target>
|
||
<maven.compiler.release>21</maven.compiler.release>
|
||
<skipTests>true</skipTests>
|
||
<shiro.version>1.12.0</shiro.version>
|
||
<!-- JDK 21兼容版本 -->
|
||
<lombok.version>1.18.34</lombok.version>
|
||
<mybatis.version>3.5.16</mybatis.version>
|
||
<druid.version>1.2.23</druid.version>
|
||
<!-- SpringDoc OpenAPI for Swagger替换SpringFox -->
|
||
<springdoc.version>1.8.0</springdoc.version>
|
||
<!-- Spring AI for LLM Integration (compatible with Spring Boot 2.7.x) -->
|
||
<spring-ai.version>0.8.1</spring-ai.version>
|
||
<!-- OkHttp for HTTP client (used by Spring AI) -->
|
||
<okhttp.version>4.12.0</okhttp.version>
|
||
<!-- Testing frameworks -->
|
||
<testcontainers.version>1.19.8</testcontainers.version>
|
||
<h2.version>2.2.224</h2.version>
|
||
</properties>
|
||
|
||
<dependencies>
|
||
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 -->
|
||
<dependency>
|
||
<groupId>org.apache.httpcomponents.client5</groupId>
|
||
<artifactId>httpclient5</artifactId>
|
||
<version>5.5</version>
|
||
</dependency>
|
||
|
||
<!-- Thymeleaf Template Engine for AI Management UI -->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||
</dependency>
|
||
|
||
<!-- Spring AI Core Dependencies for LLM Integration - TEMPORARILY COMMENTED FOR COMPATIBILITY -->
|
||
<!-- TODO: Need to use Spring Boot 3.x compatible version or find alternative for Spring Boot 2.7.18 -->
|
||
<!--
|
||
<dependency>
|
||
<groupId>org.springframework.ai</groupId>
|
||
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
|
||
</dependency>
|
||
|
||
<dependency>
|
||
<groupId>org.springframework.ai</groupId>
|
||
<artifactId>spring-ai-retry</artifactId>
|
||
</dependency>
|
||
-->
|
||
|
||
<!-- Spring Boot WebFlux for async operations (required by Spring AI) -->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>org.springframework.boot</groupId>-->
|
||
<!-- <artifactId>spring-boot-starter-webflux</artifactId>-->
|
||
<!-- </dependency>-->
|
||
|
||
<!-- OkHttp HTTP client for better connection management -->
|
||
<dependency>
|
||
<groupId>com.squareup.okhttp3</groupId>
|
||
<artifactId>okhttp</artifactId>
|
||
<version>${okhttp.version}</version>
|
||
</dependency>
|
||
|
||
<!-- Spring Boot Actuator for monitoring and health checks -->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||
</dependency>
|
||
|
||
<!-- Micrometer for metrics collection -->
|
||
<dependency>
|
||
<groupId>io.micrometer</groupId>
|
||
<artifactId>micrometer-core</artifactId>
|
||
</dependency>
|
||
|
||
<!-- Spring Retry for circuit breaker patterns -->
|
||
<dependency>
|
||
<groupId>org.springframework.retry</groupId>
|
||
<artifactId>spring-retry</artifactId>
|
||
</dependency>
|
||
|
||
<!-- Resilience4j for circuit breaker and rate limiting -->
|
||
<!-- https://mvnrepository.com/artifact/io.github.resilience4j/resilience4j-spring-boot3 -->
|
||
<dependency>
|
||
<groupId>io.github.resilience4j</groupId>
|
||
<artifactId>resilience4j-spring-boot3</artifactId>
|
||
<version>2.3.0</version>
|
||
</dependency>
|
||
<!--基础框架youfool-framework-boot-->
|
||
<dependency>
|
||
<groupId>com.chinaweal.youfool</groupId>
|
||
<artifactId>youfool-framework-springboot3</artifactId>
|
||
<version>1.0.1</version>
|
||
</dependency>
|
||
<!--druid-->
|
||
|
||
<dependency>
|
||
<groupId>org.projectlombok</groupId>
|
||
<artifactId>lombok</artifactId>
|
||
<version>${lombok.version}</version>
|
||
<scope>provided</scope>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.dtflys.forest</groupId>
|
||
<artifactId>forest-spring-boot-starter</artifactId>
|
||
<version>1.5.16</version>
|
||
<exclusions>
|
||
<exclusion>
|
||
<groupId>commons-logging</groupId>
|
||
<artifactId>commons-logging</artifactId>
|
||
</exclusion>
|
||
</exclusions>
|
||
</dependency>
|
||
<!--Java工具类库-->
|
||
<dependency>
|
||
<groupId>cn.hutool</groupId>
|
||
<artifactId>hutool-all</artifactId>
|
||
<version>5.3.7</version>
|
||
</dependency>
|
||
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
|
||
<dependency>
|
||
<groupId>org.postgresql</groupId>
|
||
<artifactId>postgresql</artifactId>
|
||
<version>42.7.4</version>
|
||
</dependency>
|
||
<!-- Testing Dependencies -->
|
||
<!-- Spring Boot Test starter (includes JUnit 5) -->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-test</artifactId>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
|
||
<!-- Spring AI Testing support - Removed due to unavailability in nexus -->
|
||
<!-- Using standard Spring Boot test instead -->
|
||
|
||
<!-- H2 in-memory database for testing -->
|
||
<dependency>
|
||
<groupId>com.h2database</groupId>
|
||
<artifactId>h2</artifactId>
|
||
<version>${h2.version}</version>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
|
||
<!-- TestContainers for integration testing (optional) -->
|
||
<dependency>
|
||
<groupId>org.testcontainers</groupId>
|
||
<artifactId>junit-jupiter</artifactId>
|
||
<version>${testcontainers.version}</version>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
|
||
<!-- TestContainers PostgreSQL for database testing -->
|
||
<dependency>
|
||
<groupId>org.testcontainers</groupId>
|
||
<artifactId>postgresql</artifactId>
|
||
<version>${testcontainers.version}</version>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
|
||
<!-- WebFlux Test support -->
|
||
<dependency>
|
||
<groupId>io.projectreactor</groupId>
|
||
<artifactId>reactor-test</artifactId>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
|
||
<!-- OkHttp MockWebServer for HTTP testing -->
|
||
<dependency>
|
||
<groupId>com.squareup.okhttp3</groupId>
|
||
<artifactId>mockwebserver</artifactId>
|
||
<version>${okhttp.version}</version>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
|
||
<!-- JUnit 4 compatibility (keep for existing tests) -->
|
||
<dependency>
|
||
<groupId>junit</groupId>
|
||
<artifactId>junit</artifactId>
|
||
<version>4.13.2</version>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.alibaba</groupId>
|
||
<artifactId>easyexcel</artifactId>
|
||
<version>2.2.6</version>
|
||
</dependency>
|
||
<!-- Spring WebSocket support -->
|
||
<dependency>
|
||
<groupId>org.springframework</groupId>
|
||
<artifactId>spring-websocket</artifactId>
|
||
</dependency>
|
||
|
||
<!-- Spring messaging support for WebSocket -->
|
||
<dependency>
|
||
<groupId>org.springframework</groupId>
|
||
<artifactId>spring-messaging</artifactId>
|
||
</dependency>
|
||
|
||
<!-- SockJS for WebSocket fallback support -->
|
||
<dependency>
|
||
<groupId>org.webjars</groupId>
|
||
<artifactId>sockjs-client</artifactId>
|
||
<version>1.5.1</version>
|
||
</dependency>
|
||
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>javax.websocket</groupId>-->
|
||
<!-- <artifactId>javax.websocket-api</artifactId>-->
|
||
<!-- <version>1.1</version>-->
|
||
<!-- <scope>provided</scope>-->
|
||
<!-- </dependency>-->
|
||
<!--图片压缩-->
|
||
<dependency>
|
||
<groupId>net.coobird</groupId>
|
||
<artifactId>thumbnailator</artifactId>
|
||
<version>0.4.14</version>
|
||
</dependency>
|
||
<!--把excel导出图片-->
|
||
<dependency>
|
||
<groupId>e-iceblue</groupId>
|
||
<artifactId>spire.xls</artifactId>
|
||
<version>3.9.1</version>
|
||
</dependency>
|
||
<!-- Spring Boot validation starter (required for @Valid annotations) -->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-validation</artifactId>
|
||
</dependency>
|
||
<!-- SpringDoc OpenAPI 3 (替换SpringFox/Knife4j) -->
|
||
<dependency>
|
||
<groupId>org.springdoc</groupId>
|
||
<artifactId>springdoc-openapi-ui</artifactId>
|
||
<version>${springdoc.version}</version>
|
||
</dependency>
|
||
<!-- SpringDoc OpenAPI WebMVC支持 -->
|
||
<dependency>
|
||
<groupId>org.springdoc</groupId>
|
||
<artifactId>springdoc-openapi-webmvc-core</artifactId>
|
||
<version>${springdoc.version}</version>
|
||
</dependency>
|
||
<!-- 临时依赖:SpringFox注解兼容(仅用于编译,将逐步迁移到SpringDoc) -->
|
||
<dependency>
|
||
<groupId>io.springfox</groupId>
|
||
<artifactId>springfox-swagger2</artifactId>
|
||
<version>2.9.2</version>
|
||
<scope>compile</scope>
|
||
</dependency>
|
||
<!--AI框架接入-->
|
||
<dependency>
|
||
<groupId>com.chinaweal.youfool.ai</groupId>
|
||
<artifactId>youfool-ai-framework</artifactId>
|
||
<version>1.0.0-SNAPSHOT</version>
|
||
</dependency>
|
||
</dependencies>
|
||
|
||
<!-- Repositories for Spring AI dependencies -->
|
||
<repositories>
|
||
<repository>
|
||
<id>spring-milestones</id>
|
||
<name>Spring Milestones</name>
|
||
<url>https://repo.spring.io/milestone</url>
|
||
<snapshots>
|
||
<enabled>false</enabled>
|
||
</snapshots>
|
||
</repository>
|
||
<repository>
|
||
<id>spring-snapshots</id>
|
||
<name>Spring Snapshots</name>
|
||
<url>https://repo.spring.io/snapshot</url>
|
||
<releases>
|
||
<enabled>false</enabled>
|
||
</releases>
|
||
</repository>
|
||
</repositories>
|
||
|
||
<build>
|
||
<finalName>devops-api-gd</finalName>
|
||
<plugins>
|
||
<plugin>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||
<configuration>
|
||
<jvmArguments>
|
||
--add-opens java.base/java.util=ALL-UNNAMED
|
||
--add-opens java.base/java.lang=ALL-UNNAMED
|
||
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
|
||
--add-opens java.base/java.time=ALL-UNNAMED
|
||
--add-opens java.desktop/java.beans=ALL-UNNAMED
|
||
</jvmArguments>
|
||
<excludes>
|
||
<exclude>
|
||
<groupId>org.projectlombok</groupId>
|
||
<artifactId>lombok</artifactId>
|
||
</exclude>
|
||
</excludes>
|
||
</configuration>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-compiler-plugin</artifactId>
|
||
<version>3.12.1</version>
|
||
<configuration>
|
||
<source>21</source>
|
||
<target>21</target>
|
||
<release>21</release>
|
||
<annotationProcessorPaths>
|
||
<path>
|
||
<groupId>org.projectlombok</groupId>
|
||
<artifactId>lombok</artifactId>
|
||
<version>${lombok.version}</version>
|
||
</path>
|
||
</annotationProcessorPaths>
|
||
<compilerArgs>
|
||
<arg>--add-opens</arg>
|
||
<arg>java.base/java.util=ALL-UNNAMED</arg>
|
||
<arg>--add-opens</arg>
|
||
<arg>java.base/java.lang=ALL-UNNAMED</arg>
|
||
<arg>--add-opens</arg>
|
||
<arg>java.base/java.lang.reflect=ALL-UNNAMED</arg>
|
||
<arg>-Xlint:deprecation</arg>
|
||
<arg>-Xlint:unchecked</arg>
|
||
<arg>-Xlint:-options</arg>
|
||
</compilerArgs>
|
||
</configuration>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-surefire-plugin</artifactId>
|
||
<version>3.2.5</version>
|
||
<configuration>
|
||
<argLine>
|
||
--add-opens java.base/java.util=ALL-UNNAMED
|
||
--add-opens java.base/java.lang=ALL-UNNAMED
|
||
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
|
||
--add-opens java.base/java.time=ALL-UNNAMED
|
||
</argLine>
|
||
</configuration>
|
||
</plugin>
|
||
</plugins>
|
||
</build>
|
||
</project>
|