mirror of
https://gitee.com/mateos/mateclaw.git
synced 2026-09-13 11:13:43 +08:00
312 lines
11 KiB
XML
312 lines
11 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>vip.mate</groupId>
|
||
<artifactId>mateclaw-server</artifactId>
|
||
<version>1.1.137-SNAPSHOT</version>
|
||
<packaging>jar</packaging>
|
||
|
||
<name>MateClaw Server</name>
|
||
<description>MateClaw - Java+Vue Personal AI Assistant powered by Spring AI Alibaba</description>
|
||
|
||
<parent>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-parent</artifactId>
|
||
<version>3.5.13</version>
|
||
<relativePath/>
|
||
</parent>
|
||
|
||
<properties>
|
||
<java.version>21</java.version>
|
||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||
<!-- Spring AI 1.1.4 正式版 -->
|
||
<spring-ai.version>1.1.4</spring-ai.version>
|
||
<!-- Spring AI Alibaba 1.1.2.2(对应 Spring AI 1.1.x) -->
|
||
<spring-ai-alibaba.version>1.1.2.2</spring-ai-alibaba.version>
|
||
<mybatis-plus.version>3.5.16</mybatis-plus.version>
|
||
<hutool.version>5.8.26</hutool.version>
|
||
<springdoc.version>2.8.16</springdoc.version>
|
||
<jjwt.version>0.12.6</jjwt.version>
|
||
</properties>
|
||
|
||
<dependencyManagement>
|
||
<dependencies>
|
||
<!-- Spring AI BOM(统一管理 spring-ai-* 版本) -->
|
||
<dependency>
|
||
<groupId>org.springframework.ai</groupId>
|
||
<artifactId>spring-ai-bom</artifactId>
|
||
<version>${spring-ai.version}</version>
|
||
<type>pom</type>
|
||
<scope>import</scope>
|
||
</dependency>
|
||
<!-- SpringDoc OpenAPI BOM(统一管理 springdoc-* 版本) -->
|
||
<dependency>
|
||
<groupId>org.springdoc</groupId>
|
||
<artifactId>springdoc-openapi-bom</artifactId>
|
||
<version>${springdoc.version}</version>
|
||
<type>pom</type>
|
||
<scope>import</scope>
|
||
</dependency>
|
||
</dependencies>
|
||
</dependencyManagement>
|
||
|
||
<dependencies>
|
||
<!-- ===== MateClaw Plugin API ===== -->
|
||
<dependency>
|
||
<groupId>vip.mate</groupId>
|
||
<artifactId>mateclaw-plugin-api</artifactId>
|
||
<version>1.1.0-SNAPSHOT</version>
|
||
</dependency>
|
||
|
||
<!-- ===== Web MVC(不引入 WebFlux,避免自动切换为响应式模式) ===== -->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-web</artifactId>
|
||
</dependency>
|
||
|
||
<!-- ===== Spring AI Alibaba DashScope ===== -->
|
||
<!--
|
||
1.1.2.2 需单独指定版本,不在 BOM 中
|
||
内置 DashScope ChatModel / EmbeddingModel / ImageModel
|
||
-->
|
||
<dependency>
|
||
<groupId>com.alibaba.cloud.ai</groupId>
|
||
<artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
|
||
<version>${spring-ai-alibaba.version}</version>
|
||
<!-- 排除 webflux 传递依赖,保持 MVC 模式 -->
|
||
<exclusions>
|
||
<exclusion>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-webflux</artifactId>
|
||
</exclusion>
|
||
</exclusions>
|
||
</dependency>
|
||
|
||
<!-- ===== Spring AI Alibaba Graph Core(StateGraph 工作流引擎) ===== -->
|
||
<dependency>
|
||
<groupId>com.alibaba.cloud.ai</groupId>
|
||
<artifactId>spring-ai-alibaba-graph-core</artifactId>
|
||
<version>${spring-ai-alibaba.version}</version>
|
||
</dependency>
|
||
|
||
<!-- ===== Spring AI OpenAI Compatible ===== -->
|
||
<dependency>
|
||
<groupId>org.springframework.ai</groupId>
|
||
<artifactId>spring-ai-openai</artifactId>
|
||
</dependency>
|
||
|
||
<!-- ===== Spring AI Anthropic(Claude 模型支持) ===== -->
|
||
<dependency>
|
||
<groupId>org.springframework.ai</groupId>
|
||
<artifactId>spring-ai-anthropic</artifactId>
|
||
</dependency>
|
||
|
||
<!-- ===== Spring AI MCP Client(动态 MCP server 连接管理) ===== -->
|
||
<!--
|
||
使用 spring-ai-mcp-client-spring-boot-starter 引入 MCP 核心库,
|
||
但禁用自动配置(我们自己管理 McpSyncClient 生命周期)
|
||
-->
|
||
<dependency>
|
||
<groupId>org.springframework.ai</groupId>
|
||
<artifactId>spring-ai-starter-mcp-client</artifactId>
|
||
<exclusions>
|
||
<exclusion>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-webflux</artifactId>
|
||
</exclusion>
|
||
</exclusions>
|
||
</dependency>
|
||
|
||
<!-- ===== H2 内嵌数据库(开发环境) ===== -->
|
||
<dependency>
|
||
<groupId>com.h2database</groupId>
|
||
<artifactId>h2</artifactId>
|
||
<scope>runtime</scope>
|
||
</dependency>
|
||
|
||
<!-- ===== MySQL 驱动(生产环境) ===== -->
|
||
<dependency>
|
||
<groupId>com.mysql</groupId>
|
||
<artifactId>mysql-connector-j</artifactId>
|
||
<scope>runtime</scope>
|
||
</dependency>
|
||
|
||
<!-- ===== MyBatis Plus(不引入 JPA,避免双 ORM 冲突) ===== -->
|
||
<dependency>
|
||
<groupId>com.baomidou</groupId>
|
||
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
|
||
<version>${mybatis-plus.version}</version>
|
||
</dependency>
|
||
<!-- MyBatis Plus 分页插件(3.5.16 拆分为独立模块) -->
|
||
<dependency>
|
||
<groupId>com.baomidou</groupId>
|
||
<artifactId>mybatis-plus-jsqlparser</artifactId>
|
||
<version>${mybatis-plus.version}</version>
|
||
</dependency>
|
||
|
||
<!-- ===== Spring Security ===== -->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-security</artifactId>
|
||
</dependency>
|
||
|
||
<!-- ===== JJWT (JSON Web Token) ===== -->
|
||
<dependency>
|
||
<groupId>io.jsonwebtoken</groupId>
|
||
<artifactId>jjwt-api</artifactId>
|
||
<version>${jjwt.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.jsonwebtoken</groupId>
|
||
<artifactId>jjwt-impl</artifactId>
|
||
<version>${jjwt.version}</version>
|
||
<scope>runtime</scope>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.jsonwebtoken</groupId>
|
||
<artifactId>jjwt-jackson</artifactId>
|
||
<version>${jjwt.version}</version>
|
||
<scope>runtime</scope>
|
||
</dependency>
|
||
|
||
<!-- ===== SpringDoc OpenAPI(Swagger UI for Spring MVC) ===== -->
|
||
<dependency>
|
||
<groupId>org.springdoc</groupId>
|
||
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
|
||
</dependency>
|
||
|
||
<!-- ===== Hutool 工具库 ===== -->
|
||
<dependency>
|
||
<groupId>cn.hutool</groupId>
|
||
<artifactId>hutool-all</artifactId>
|
||
<version>${hutool.version}</version>
|
||
</dependency>
|
||
|
||
<!-- ===== 钉钉 Stream SDK(WebSocket 长连接,无需公网 IP) ===== -->
|
||
<dependency>
|
||
<groupId>com.dingtalk.open</groupId>
|
||
<artifactId>dingtalk-stream</artifactId>
|
||
<version>1.3.5</version>
|
||
</dependency>
|
||
|
||
<!-- ===== 飞书 / Lark Open API SDK(WebSocket 长连接 + 事件分发) ===== -->
|
||
<dependency>
|
||
<groupId>com.larksuite.oapi</groupId>
|
||
<artifactId>oapi-sdk</artifactId>
|
||
<version>2.5.3</version>
|
||
</dependency>
|
||
|
||
<!-- ===== Caffeine Cache(用于 skill runtime 缓存) ===== -->
|
||
<dependency>
|
||
<groupId>com.github.ben-manes.caffeine</groupId>
|
||
<artifactId>caffeine</artifactId>
|
||
</dependency>
|
||
|
||
<!-- ===== SnakeYAML(用于 SKILL.md frontmatter 解析) ===== -->
|
||
<dependency>
|
||
<groupId>org.yaml</groupId>
|
||
<artifactId>snakeyaml</artifactId>
|
||
</dependency>
|
||
|
||
<!-- ===== Lombok ===== -->
|
||
<dependency>
|
||
<groupId>org.projectlombok</groupId>
|
||
<artifactId>lombok</artifactId>
|
||
<optional>true</optional>
|
||
</dependency>
|
||
|
||
<!-- ===== QR Code Generation (ZXing) ===== -->
|
||
<dependency>
|
||
<groupId>com.google.zxing</groupId>
|
||
<artifactId>core</artifactId>
|
||
<version>3.5.3</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.google.zxing</groupId>
|
||
<artifactId>javase</artifactId>
|
||
<version>3.5.3</version>
|
||
</dependency>
|
||
|
||
<!-- ===== Playwright (Browser Automation) ===== -->
|
||
<dependency>
|
||
<groupId>com.microsoft.playwright</groupId>
|
||
<artifactId>playwright</artifactId>
|
||
<version>1.52.0</version>
|
||
</dependency>
|
||
|
||
<!-- ===== JDA(Discord Bot Gateway WebSocket 长连接) ===== -->
|
||
<dependency>
|
||
<groupId>net.dv8tion</groupId>
|
||
<artifactId>JDA</artifactId>
|
||
<version>5.2.3</version>
|
||
<exclusions>
|
||
<!-- 排除 audio 相关依赖(MateClaw 不需要语音功能) -->
|
||
<exclusion>
|
||
<groupId>club.minnced</groupId>
|
||
<artifactId>opus-java</artifactId>
|
||
</exclusion>
|
||
</exclusions>
|
||
</dependency>
|
||
|
||
<!-- ===== Spring WebSocket(Talk Mode) ===== -->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-websocket</artifactId>
|
||
</dependency>
|
||
|
||
<!-- ===== Slack SDK(Socket Mode + Web API) ===== -->
|
||
<dependency>
|
||
<groupId>com.slack.api</groupId>
|
||
<artifactId>slack-api-client</artifactId>
|
||
<version>1.44.2</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.slack.api</groupId>
|
||
<artifactId>bolt-socket-mode</artifactId>
|
||
<version>1.44.2</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.glassfish.tyrus.bundles</groupId>
|
||
<artifactId>tyrus-standalone-client</artifactId>
|
||
<version>2.2.0</version>
|
||
</dependency>
|
||
|
||
<!-- ===== Database Migration (Flyway) ===== -->
|
||
<dependency>
|
||
<groupId>org.flywaydb</groupId>
|
||
<artifactId>flyway-core</artifactId>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.flywaydb</groupId>
|
||
<artifactId>flyway-mysql</artifactId>
|
||
</dependency>
|
||
|
||
<!-- ===== Spring Boot Test ===== -->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-test</artifactId>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
</dependencies>
|
||
|
||
<build>
|
||
<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>
|
||
</plugin>
|
||
</plugins>
|
||
</build>
|
||
</project>
|